【问题标题】:How to get creation date of file on Windows command line?如何在 Windows 命令行上获取文件的创建日期?
【发布时间】:2014-07-24 08:26:27
【问题描述】:

我目前正在使用以下命令来获取具有给定模式的文件的最后修改时间。

for /r C:\ %F in ("*.txt") do @echo "%~nxF", "%~tF"

如何获取创建日期?

【问题讨论】:

    标签: windows file batch-file


    【解决方案1】:
    @echo off
    for /f "skip=5 tokens=1,2,4,5* delims= " %%a in ('dir  /a:-d /o:d /t:c') do (
        if "%%~c" NEQ "bytes" (
            echo(
            @echo file name:     %%~d
            @echo creation date: %%~a
            @echo creation time: %%~b
            echo(
    
        )
    )
    

    但这取决于时间设置。另一种方法是使用WMIC或嵌入bat jscript或vbscript或powershell。

    编辑(使用 WMIC - 在家庭版 windows 中不可用,但不依赖于时间设置):

    @echo off
    set "target_dir=C:\some_dir"
    
    for /f "tokens=2 delims=:" %%d in ("%target_dir%") do (
     set "data_path=%%d"
    )
    set data_path=%data_path:\=\\%\\
    echo %data_path%
    
    pushd %target_dir%
    
    WMIC DATAFILE WHERE "PATH='%data_path%'" GET CreationDate,Caption
    

    【讨论】:

      【解决方案2】:
      for /r D:\MyFolder %F in ("PartOfFileName*.ZIP") do SET FileNameCreated=%~tF
      echo Minute = %FileNameCreated:~14,2%
      echo Hour   = %FileNameCreated:~11,2%
      echo AM/PM  = %FileNameCreated:~17,2%
      echo Day    = %FileNameCreated:~0,2%
      echo Month  = %FileNameCreated:~3,2%
      echo Year   = %FileNameCreated:~6,4%
      

      【讨论】:

      • 问题已经描述了%~t,它返回last modification time,但不是请求的creation timestamp
      • 刚刚想通了。现已更正。很抱歉!
      • 它仍然没有回答这个问题。 %~tF 包含 LAST MODIFICATION timestamp 而不是 CREATION timestamp。无法使用 FOR 变量修饰符获得该时间戳。查看@npocmaka 的答案
      • 只是提醒任何最终来到这里并认为他们想使用这种方法提取日期的人。字符串提取参数不适合我的机器。对于 YYYY-MM-DD HH:MM 格式,它是 y=0,4,m=5,2,d=8,2,h=11,2,m=14,2 其中第一个数字是第一个字符的基数位置,第二个是字符数量,包括首先。
      猜你喜欢
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      相关资源
      最近更新 更多