谁能向我解释以下内容:
编码:
@echo off
SETLOCAL disabledelayedexpansion
set pf=C:
set url=http://www.rarlab.com/rar
set fn=config.sys
call :SUB1 "%url%" "%fn%"
goto :EOF
:SUB1
echo:PATH=[ %pf%\%~2 ]
if exist %pf%\%~2 (call :READDATE "%pf%\%~2") & set "_datum1=%_result%"
echo:Date1=[ %_datum1% ]
if exist %pf%\%~2 (call :READDATE "%pf%\%~2") & set "_datum2=%_result%"
echo:Date2=[ %_datum2% ]
goto :EOF
:READDATE
SETLOCAL
for %%A in (%~1) do set "_tvar=%%~tA"
echo:Date=[ %_tvar% ]
ENDLOCAL & set "_result=%_tvar%"
exit /b 0
:end
输出:
PATH=[ C:\config.sys ]
Date=[ 10.06.2009 23:42 ]
Date1=[ ]
Date=[ 10.06.2009 23:42 ]
Date2=[ 10.06.2009 23:42 ]
因此,如果您查看输出的第 3 行,则没有日期/时间 - 为什么 ????? 如果这不是 CMD.EXE 的大错误,任何人都可以帮我解决问题。我需要两个日期/时间数据进行比较。
附录:
是否有可能在不使用第二个“READDATE”的情况下读取第一个“sub”中的日期/时间?
我尝试了以下方法:
if exist %pf%\%~2 set "_datum1=%pf%\%~t2"
但这不起作用,因为“~t2”似乎只适用于将完整路径和文件名保存在一起的变量。