batch file:获取文件夹的创builddate

有没有办法获得纯batch file(没有电源脚本)文件夹的创builddate? 特别是,我想在这里进行循环:

FOR /f "tokens=*" %%G in ('dir /b /s /a:d "C:\asdf\*"') DO CALL :loopbody "%%~tG" "%%G" 

此循环调用一个“函数”,将文件夹的修改date作为第一个参数,将文件夹的path作为第二个参数。

 for /f "skip=5 tokens=1,2 delims= " %%A in ('dir /ad /od /tc "dirname"') do ( echo %%A-%%B goto :end_loop ) :end_loop 

试试这个。结果将取决于你的时间设置,可能你需要调整标记和分隔符。也可以使用WMIC和混合jscript / vbscript,但需要几分钟的时间来创建一个脚本。

编辑与wmic:

 WMIC path Win32_Directory WHERE name='C:\\SomeDir' get creationdate 

编辑这里有一些准备使用不同的方法来获取文件或目录时间戳的脚本:

  1. fileModifiedTime.bat – 获取设置独立格式文件的最后修改时间。基于robocopy
  2. fileTimes.bat – 用WMIC获取文件时间戳
  3. dirTimes.bat – 用WMIC获取目录时间戳
  4. fileTimesJS.bat – 文件时间戳与jscript
  5. dirTimesJS.bat – 带jscript的目录时间戳
  6. fileTimesNET.bat – 文件时间戳与.NET
  7. dirTimesNET.bat – 使用.NET的 dir时间戳
  @ECHO OFF &SETLOCAL CD "StartFolder" FOR /D /R %%G in (*) DO ( SET "FileName=%%~G" SETLOCAL ENABLEDELAYEDEXPANSION FOR /F %%H IN ('wmic fsdir where name^="!FileName:\=\\!" get creationdate^|find "."') DO SET "cdate=%%H" CALL :loopbody "!cdate:~6,2!/!cdate:~4,2!/!cdate:~0,4!-!cdate:~8,2!:!cdate:~10,2!:!cdate:~12,2!" "!FileName!" ENDLOCAL ) GOTO:EOF :loopbody ECHO %~1 "%~2" EXIT /B