我需要自動化去判斷一個安裝的Log紀錄檔如下:
安裝資訊
-------------------------
**開始安裝驅動
Intel Chipset Driver,10.1.18634.8254,10.1.18634.8254
Realtek Audio Driver,6.0.9175.1,6.0.9175.1
Intel LAN Driver,12.18.11.1,12.18.11.1
**結束安裝
目前程式迴圈有成功得到變數且Set變數:安裝名稱(A)、要安裝版本(B)、完成安裝版本(C),但是嘗試echo和判斷比對卻帶不出設定,嘗試過setlocal enabledelayedexpansion一樣無效,一直找不出頭緒卡關...
程式:
@echo on
For /F "skip=3 tokens=1,2,3 delims=," %%I in (.\Install.log) do (
Set A=%%I
Set B=%%J
Set C=%%K
echo.%A%
echo.%B%
echo.%C%
if "%B%"=="%C%" (
echo.OK
) else (
echo."%A%"_"%B%"_"%C%" Fail
)
)
懇請點出我的問題在哪,非常感謝!!!
延遲展開的變數要用 !{變數名稱}!
去存取
@echo on
setlocal EnableDelayedExpansion
For /F "skip=3 tokens=1,2,3 delims=," %%I in (.\Install.log) do (
Set A=%%I
Set B=%%J
Set C=%%K
echo.!A!
echo.!B!
echo.!C!
if "!B!"=="!C!" (
echo.OK
) else (
echo."!A!"_"!B!"_"!C!" Fail
)
)
然後原始碼的 C=%%K
後面有空白鍵,要將其拿掉,否則 "!B!"=="!C!"
比出來的結果應該不會是預期的結果
結果
Intel Chipset Driver
10.1.18634.8254
10.1.18634.8254
OK
Realtek Audio Driver
6.0.9175.1
6.0.9175.1
OK
Intel LAN Driver
12.18.11.1
12.18.11.1
OK