2012-06-26 2 views
9

Я ищу команду cmd shell в Windows XP, например, «dir/b/s», которая содержит значения даты и времени для каждого файла в результате. Все данные - путь, имя файла и дата/время - должны быть в одной строке. Может ли кто-нибудь предоставить команду для этого? Спасибо.cmd dir/b/s plus date

ответ

1

Нет прямого способа сделать это с помощью DIR. Вам нужно будет написать обертку, которая удалит посторонние детали из DIR/s

Для этого вы можете использовать либо powershell, либо vbscript, либо javascript.

Вот ответ, связанный с использованием PowerShell: How to retrieve a recursive directory and file list from PowerShell excluding some files and folders?, хотя вам необходимо внести поправку, чтобы добавить дату/время.

UPDATE: Вот MAD сайт, который перечисляет рекурсивный каталог прогулку в нагрузках на разных языках: http://rosettacode.org/wiki/Walk_a_directory/Recursively

12

Если вы хотите, чтобы файлы только

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 мус t изменить на %%F и %%~tF.

+0

Это отвечает моим потребностям отлично. Спасибо. – user1483922

+2

@ user1483922 - Когда вы получите ответ, который идеально соответствует вашим потребностям, вы должны принять его, нажав на галочку возле левого верхнего угла ответа. Принятие ответа позволяет другим узнать, что на вопрос был дан ответ, он начисляет вам 2 балла за то, что вы нашли время, чтобы принять ответ, и он присуждает человеку, который отправил ответ на 15 баллов. – dbenham

0

Как о чем-то вроде этого:

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 

Simples, хотя, возможно, осложненной ему немного :-)