cmd dir / b / s加上日期

时间:2012-06-26 20:49:28

标签: date path cmd dir bare

我在Windows XP中寻找一个cmd shell命令,比如“dir / b / s”,其中包含结果中每个文件的日期和时间值。所有数据 - 路径,文件名和日期/时间 - 都需要在一行上。任何人都可以提供完成此任务的命令吗?谢谢。

4 个答案:

答案 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>转储信息,例如:

  • %〜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;

答案 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

简单,虽然我可能会稍微复杂一点: - )