【发布时间】:2014-07-24 08:26:27
【问题描述】:
我目前正在使用以下命令来获取具有给定模式的文件的最后修改时间。
for /r C:\ %F in ("*.txt") do @echo "%~nxF", "%~tF"
如何获取创建日期?
【问题讨论】:
标签: windows file batch-file
我目前正在使用以下命令来获取具有给定模式的文件的最后修改时间。
for /r C:\ %F in ("*.txt") do @echo "%~nxF", "%~tF"
如何获取创建日期?
【问题讨论】:
标签: windows file batch-file
@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
【讨论】:
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 的答案
y=0,4,m=5,2,d=8,2,h=11,2,m=14,2 其中第一个数字是第一个字符的基数位置,第二个是字符数量,包括首先。