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
Другие вопросы по тегам