我可以使用DOS命令来替换文件所有者和创建时间吗?

时间:2014-08-12 12:03:00

标签: for-loop cmd dos

我在cmd.exe中运行以下命令以递归方式列出文件...

for /r %i in (*) do @echo %~xi %~zi %~ti %~fi

..得到这样的输出:

.ext 187392 15/01/2014 14:16 C:\path\to\filename\f.ext

但是我可以将文件所有者添加到此输出中吗?我正在寻找dir /q给我的同一位老板。我也希望得到文件创建时间,而不是我认为%~ti给我的最后访问时间。

如果我不能使用for,我可以使用fordir的组合来实现吗?

1 个答案:

答案 0 :(得分:1)

< lang-dos - >

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
for /r "%sourcedir%" %%i in (*.pdf) do (
 SET "grab="
 FOR /f "skip=5tokens=1,2,4delims=\ " %%a IN ('dir /q /tc /-c "%%~fi"') DO IF NOT DEFINED grab (
  SET grab=Y
  echo %%~xi %%~zi %%a %%b %%c %%~fi
 )
)
GOTO :eof

您需要更改sourcedir的设置以适合您的具体情况。我使用了*.pdf的文件掩码来使测试结果更清晰。你想要不同?改变它!