GOOGLE ADS

пятница, 29 апреля 2022 г.

Список всех файлов с 2 метками времени, размером, но без пути или каталога

Windows, командная строка, необходимо создать вывод файла.txt, содержащий все файлы из большого и сложного дерева каталогов с одной (1) строкой для каждого файла, как:

CreationDateYYYYMMDD-HHMMSS, LastModifiedYYYYMMDD-HHMMSS, размер файла [без запятых K], имя файла.ext

Например:

20100101-174503, 20120202-191536, 1589567, myfile.ext

Список не должен содержать строки с именами каталогов и т. д., только имена файлов, даже если один и тот же файл присутствует более одного раза. Время в 24-часовом формате.

dir /s/t:c/t:w/-c > filelist.txt

Команда точно не работает таким образом.


Решение проблемы

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=c:\program files"
FOR /f "delims=" %%a IN (
'dir /s /b /a-d "%sourcedir%\*" '
) DO (
FOR %%d IN (timewritten timecreated) DO SET "%%d="
FOR %%k IN (-d s h) DO (
IF NOT DEFINED timewritten FOR /f "tokens=1,2 delims= " %%d IN ('dir /tw %%~k "%%a" 2^>nul ^|find "%%~nxa"') DO SET "timewritten=%%d %%e"
IF NOT DEFINED timecreated FOR /f "tokens=1,2 delims= " %%d IN ('dir /tc %%~k "%%a" 2^>nul ^|find "%%~nxa"') DO SET "timecreated=%%d %%e"
)
ECHO!timecreated!!timewritten! %%~za %%~nxa
)
)
GOTO:EOF

Вам нужно будет изменить настройку sourcedirв соответствии с вашими обстоятельствами.

Интересная проблема. Этот код обрабатывает его

Во-первых, применяя стандартный список каталогов для имен файлов в дереве от относительного корня (%sourcedir%) до %%a

Используя полное имя файла в %%a, наборе timewrittenи timecreatedиз обычного dirсписка, предназначенного для рассматриваемого файла.

Оказалось, что %%~taизвлечение метки времени для скрытых и системных файлов не очень хорошо, поэтому я решил построить их из обычного dirсписка с соответствующими tнастройками, в частности, листинг с /ad, /as и /ah и фильтрация для строки, которая соответствовало имени файла, которое, казалось, правильно извлекало данные.

Я оставил дату/время в необработанном формате. Извлечение различных элементов и построение отчета в нужном формате должно быть простой задачей.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...