【发布时间】:2023-03-24 17:29:01
【问题描述】:
使用 Windows 批处理,此函数返回文件的创建日期:
:creationDate
set "CompareFile=%~1"
echo !CompareFile!
for /f "skip=5 tokens=1,2,4,5* delims= " %%a in ('dir /a:-d /o:d /t:c') do (
if "%%~c" NEQ "bytes" (
if "%%~d"=="!CompareFile!" ( set "%~2=%%~a %%~b" )
)
)
goto:eof
示例用法:
call :creationDate "!MyFile!" MyFileCreationDate
echo !MyFile! was made on !MyFileCreationDate!
函数中的变量:
%%~a = Creation Date
%%~b = Creation Time
%%~d = Filename (error when there is spaces!)
%%~1 = Filename to get the creation date for
%%~2 = Variable to store creation date in
但它不适用于带有空格或特殊字符的文件名。在这种情况下,%%~d 可能只包含文件名的前几个字母,或者什么都不包含,导致参数 2 没有返回值
目标是让它与我作为参数 1 传递给子例程的带空格的文件名匹配,并返回参数 2 作为参数 1 的创建日期。
【问题讨论】:
标签: batch-file filenames