cmd dir /b/s плюс дата
Я ищу команду оболочки cmd в Windows XP, например, "dir /b/s", которая включает в себя значения даты и времени для каждого файла в результате. Все данные - путь, имя файла и дата / время - должны быть в одной строке. Может ли кто-нибудь предоставить команду для достижения этой цели? Спасибо.
6 ответов
Если вы хотите только файлы
for /r %F in (*) do @echo %~tF %F
Если вам нужны файлы и каталоги, используйте команду DIR с FOR /F
for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~tF %F
Если используется в командном файле, то %F
а также %~tF
должен измениться на %%F
а также %%~tF
,
Вы также можете использовать ответ dbenham для /f "eol=: delims=" %F in ('dir /b /s') do @echo ... для вывода такой информации, как:
- % ~ zF длина файла
- % ~ dF диск
- % ~ pF путь
- % ~ nF имя
- %~xF расширение
- % ~ tF дата и время
то есть используя строки ниже, вы можете сделать дамп csv каталога с подкаталогами и деталями файла
for /f "eol=: delims=" %F in ('dir /b /s') do @echo %F;%~zF;%~dF;%~pF;%~nF;%~xF;%~tF;
полученные результаты:
full_path;size;drive;path;name;extension;date
E:\dump\oc.txt;37686;E:;\dump\;oc;.txt;2020-04-05 20:10;
Нет прямого способа сделать это с помощью DIR. Вам нужно написать обертку, которая удаляет посторонние детали из DIR /s
Для этого вы можете использовать powershell, vbscript или javascript.
Вот связанный ответ с помощью PowerShell: Как получить рекурсивный каталог и список файлов из PowerShell, исключая некоторые файлы и папки? хотя вам нужно изменить это, чтобы добавить дату / время.
ОБНОВЛЕНИЕ: Вот MAD-сайт, который перечисляет рекурсивную прогулку по каталогам на множестве разных языков: http://rosettacode.org/wiki/Walk_a_directory/Recursively
форфайлы /M ./S /C "cmd /c echo @path @fdate @ftime" >> dir_path_date.txt
Как насчет чего-то вроде этого:
for /f "tokens=*" %a in ('dir *.* /a:d /b /s') do for /f "skip=5 tokens=1,2,3,4*" %b in ('dir *.* /a:-d') do @if %e neq bytes @echo %a\%e%f %b %c
Простые, хотя я, возможно, немного усложнил:-)
@echo off
REM list files with timestamp
REM Filename first then timestamp
for /R %%I in (*.*) do @echo %%~dpnxI %%~tI
@echo off
REM list files with timestamp
REM Timestamp first then name
for /R %%I in (*.*) do @echo %%~tI %%~dpnxI