2008年11月19日 星期三

如何寫出判斷的批次檔

你可以使用下列判斷方式:

1. @echo off
2. setlocal
3. set PATHTOFIXES=\\192.168.2.205\it\Update_i386
4. if not exist %windir%\KB956841.log (%PATHTOFIXES%\WindowsServer2003-KB914961-SP2-x86-ENU.exe /Z /M) else (echo 已安裝過此程式)

第 4 行的意思是說,在 Windows 的安裝目錄下(%windir% 是系統環境變數) 若不存在KB956841.log這個檔案,則會執行第一個括號內的指令。

反之,當檔案已存在時則會執行else後面括號內的指令。當判斷式成立時,你若不只要執行一個指令時,則可將第 4 行改寫成:

1. if not exist %windir%\KB956841.log (
2. %PATHTOFIXES%\WindowsServer2003-KB914961-SP2-x86-ENU.exe /Z /M
3. echo 安裝完成!!請重新開機
4. ) else (
5. echo 已安裝過此程式)

要特別注意括號的位置,例如else前後的括號。
要刪除含有資料的資料夾只要下一個指令即可:

rd $1234567890 /S /Q
/S : 除了目錄本身之外,一併移除指定目錄裡的所有目錄和檔案。
/Q : 安靜模式,有使用 /S 時,刪除目錄樹結構不再要求確認

沒有留言:

張貼留言