【问题标题】:Batch file : get the creation date of a folder批处理文件:获取文件夹的创建日期
【发布时间】:2013-12-11 13:12:23
【问题描述】:

有没有办法在纯批处理文件(无电源脚本)中获取文件夹的创建日期?特别是,我想把它放在这个 for 循环中:

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

这个循环调用一个函数,第一个参数是文件夹的修改日期,第二个参数是文件夹的路径。

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:
    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 的目录时间戳

    【讨论】:

    • 我认为die 应该是dir
    • 这似乎是一个很好的解决方案,但有没有办法避免 dir 命令的最后两行。最后两行对我来说是这样的:“0-File(s) 0 bytes”和“6-Dir(s) 54,315,020,288 bytes free”
    • 在尝试了 npocmaka 和 Endoro 解决方案之后,我不得不对 npocmaka 给出可接受的答案,因为它比 Endoro 的解决方案快得多。另外,它要简单得多。 npocmaka 解决方案的缺点是它返回 3 行无用的行。
    【解决方案2】:
        @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
    

    【讨论】:

    • +1 但看起来很复杂。为什么不使用 %%~dpfnG 而不是 dir?
    • %%~dpfnG ?抱歉,您是什么意思?
    • 还有没有办法获取创建时间?
    • @Endoro 您可以在不调用 dir 命令的情况下获取目录的完整路径。
    • @npocmaka 哦,我明白你的意思是/D /R "C:\SomeDir" %%G in (*),增加了创建时间。
    猜你喜欢
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多