1
所以我注意到%time%變量在批處理文件的日誌中不準確,如下所示。輸出包含在代碼下面......當它進入for循環時,它獲取當前時間,但不會在更新時進行更新。這些是大的zip文件,有時需要幾分鐘來解壓縮每個文件。任何人都知道這裏發生了什麼?即使使用EnableDelayedExpansion,也不會在for循環中擴展%時間百分比
代碼:
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1-26 delims=/:. " %%a in ('echo %date% %time%') do set today=%%d%%b%%c
echo %date% %time% process start >> h:\logfiles\unzip\%today%.log
:BANK1
set bank=BANK1
call:process BANK1LOCKBOX.lbx.6*.zip
call:process BANK1LOCKBOX.lbx.3*.zip
:BANK2
set bank=BANK2
call:process BANK2LOCKBOX.A*.zip PASSWORD1
call:process BANK2LOCKBOX.R*.zip PASSWORD2
echo %date% %time% process complete >> h:\logfiles\unzip\%today%.log
goto:eof
:process
set thisfile=%1
set pword=-y
if not [%2] equ [] set pword=-p%2 -y
if exist f:\banks\%bank%\zipped\%thisfile% (
echo %time% %thisfile% begin >> h:\logfiles\unzip\%today%.log
for /f "tokens=1-2 delims=;" %%a in ('dir /b f:\banks\%bank%\zipped\%thisfile%') do (
echo %time% %%a start >> h:\logfiles\unzip\%today%.log
7z x f:\banks\%bank%\zipped\%%a -of:\banks\%bank%\* %pword%
if %errorlevel%==0 (
move /y f:\banks\%bank%\zipped\%%a f:\banks\%bank%\processed\
echo %time% %%a complete >> h:\logfiles\unzip\%today%.log
)
)
if exist f:\banks\%bank%\zipped\%thisfile% (
move /y f:\banks\%bank%\zipped\%thisfile% f:\banks\%bank%\unprocessed\
echo %time% %thisfile% failed >> h:\logfiles\unzip\%today%.log
)
echo %time% %thisfile% end >> h:\logfiles\unzip\%today%.log
)
,並將日誌是這樣的:
Tue 07/02/2013 10:40:55.70 process start
10:40:55.72 BANK1LOCKBOX.lbx.6*.zip begin
10:40:55.72 BANK1LOCKBOX.lbx.60.zip start
10:40:55.72 BANK1LOCKBOX.lbx.60.zip complete
10:40:55.72 BANK1LOCKBOX.lbx.64.zip start
10:40:55.72 BANK1LOCKBOX.lbx.64.zip complete
10:40:55.72 BANK1LOCKBOX.lbx.6*.zip end
10:41:14.02 BANK1LOCKBOX.lbx.3*.zip begin
10:41:14.02 BANK1LOCKBOX.lbx.391.zip start
10:41:14.02 BANK1LOCKBOX.lbx.391.zip complete
10:41:14.02 BANK1LOCKBOX.lbx.343.zip start
10:41:14.02 BANK1LOCKBOX.lbx.343.zip complete
10:41:14.02 BANK1LOCKBOX.lbx.3*.zip end
10:42:48.28 BANK2LOCKBOX.A*.zip begin
10:42:48.28 BANK2LOCKBOX.A_0_1.zip start
10:42:48.28 BANK2LOCKBOX.A_0_1.zip complete
10:42:48.28 BANK2LOCKBOX.A_6_1.zip start
10:42:48.28 BANK2LOCKBOX.A_6_1.zip complete
10:42:48.28 BANK2LOCKBOX.A_2_1.zip start
10:42:48.28 BANK2LOCKBOX.A_2_1.zip complete
10:42:48.28 BANK2LOCKBOX.A*.zip end
10:44:42.33 BANK2LOCKBOX.R*.zip begin
10:44:42.33 BANK2LOCKBOX.R_1359_1.zip start
10:44:42.33 BANK2LOCKBOX.R_1359_1.zip complete
10:44:42.33 BANK2LOCKBOX.R_1365_1.zip start
10:44:42.33 BANK2LOCKBOX.R_1365_1.zip complete
10:44:42.33 BANK2LOCKBOX.R_1371_1.zip start
10:44:42.33 BANK2LOCKBOX.R_1371_1.zip complete
10:44:42.33 BANK2LOCKBOX.R*.zip end
Tue 07/02/2013 10:45:25.91 process complete
使用
!time!
而當我問,我無意中發現了答案...更新所有%的時間%,在瓦爾:處理步驟到!time !,並按預期進行更新。 –