我在Windows XP中寻找一个cmd shell命令,比如“dir / b / s”,其中包含结果中每个文件的日期和时间值。所有数据 - 路径,文件名和日期/时间 - 都需要在一行上。任何人都可以提供完成此任务的命令吗?谢谢。
答案 0 :(得分:16)
如果您只想要文件
for /r %F in (*) do @echo %~tF %F
如果您想同时使用文件和目录,请使用带有FOR / F的DIR命令
for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~tF %F
如果在批处理文件中使用,则%F
和%~tF
必须更改为%%F
和%%~tF
。
答案 1 :(得分:1)
使用DIR没有直接的方法。您需要编写一个从DIR / s
中删除无关详细信息的包装器您可以使用powershell,vbscript或javascript来执行此操作。
以下是使用PowerShell的相关答案:How to retrieve a recursive directory and file list from PowerShell excluding some files and folders?,但您需要修改此内容以添加日期/时间。
更新:这是一个MAD站点,列出了不同语言的递归目录遍历:http://rosettacode.org/wiki/Walk_a_directory/Recursively
答案 2 :(得分:1)
对于/ f“ eol =:delims =”%F in('dir / b / s')do @echo ...,您也可以使用 dbenham 答案 b>转储信息,例如:
即使用下面的行,您可以创建带有子目录和文件详细信息的目录的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;
答案 3 :(得分: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
简单,虽然我可能会稍微复杂一点: - )