誰でも私に次のことを説明できますか:
コード:
@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 の大きなバグでない場合は、誰でも問題の解決を手伝ってください。比較のために両方の日付/時刻データが必要です。
補遺:
2番目の「READDATE」を使用せずに、最初の「サブ」で日付/時刻を読み取ることは何とか可能ですか??
私は次のことを試しました:
if exist %pf%\%~2 set "_datum1=%pf%\%~t2"
しかし、「~t2」は完全なパスとファイル名を一緒に保持する変数でのみ機能するように見えるため、機能しません。