12

我正在寻找 Windows XP 中的 cmd shell 命令,例如“dir /b/s”,其中包含结果中每个文件的日期和时间值。所有数据 - 路径、文件名和日期/时间 - 都需要在一行上。谁能提供一个命令来完成这个?谢谢你。

4

4 回答 4

18

如果你只想要文件

for /r %F in (*) do @echo %~tF %F

如果你想要文件和目录,那么使用带有 FOR /F 的 DIR 命令

for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~tF %F

如果在批处理文件中使用,则%Fand%~tF必须更改为%%Fand %%~tF

于 2012-06-27T02:16:00.320 回答
2

您还可以使用dbenham answer for /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;
于 2020-04-05T20:38:14.373 回答
1

使用 DIR 没有直接的方法来做到这一点。您需要编写一个包装器,从 DIR /s 中剥离无关的细节

您可以使用 powershell、vbscript 或 javascript 来执行此操作。

这是使用 PowerShell 的相关答案:如何从 PowerShell 中检索递归目录和文件列表,不包括某些文件和文件夹?尽管您需要修改它以添加日期/时间。

更新:这里是一个 MAD 站点,列出了以不同语言加载的递归目录遍历:http ://rosettacode.org/wiki/Walk_a_directory/Recursively

于 2012-06-26T21:55:36.883 回答
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

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

于 2015-01-14T15:41:01.130 回答