- Batch Language
- Backup My Favorites
- Clean Files
- List All Directories
或許有很多人認為Batch Language是原始人才用的語言,但是事實上許多windows管理員還是利用著Batch來完成許多事情,畢竟Batch裡面還是有許多不錯用的功能。在這一篇裡我會介紹一些筆者自己常用的範例。
平常要備份Favorites總要打開好幾層的資料夾然後複製到自己要存放的地方,這樣的工作如果一直重複做就變得很厭煩。這時我們就可以使用Batch Langauge來幫我們完成。
將以下文字存成bakFav.bat檔
rem. #### Backup My Faviorites ###############
XCOPY "%USERPROFILE%\Favorites" "D:\backup\Favorites" /S /D /H
rem. #################################
這裡我們使用了XCOPY這個指令幫我們把profile底下的Favorites複製到我們指令的備份路徑,如果路徑不存在他會詢問你要不要建立。其中後面接著參數分別代表如下:
/S: 備份目錄資料夾底所有子目錄及檔案
/D: 差異備份
/H: 備份隱藏跟系統檔
至於我們為什麼要使用%USERPROFILE%而不使用C:\Document ans Settings\##@%@#的原因是因為如果只絕對路徑哪這個batch檔就無法通用了。
另外常用的相對路徑指令如下:
%temp% :C:\Documents and Settings\user\Local Settings\Temp
%systemroot% :C:\WINDOWS
%programfiles% :C:\Program Files
光是這樣你可能還是會嫌每次還要點擊bakFav.bat是一件苦差事,如果我一下子要備份好多東西,那豈不是常常都要點這些batch file,你可以把這些batch file放在啟動(附屬應用程式>>啟動)裡或者使用使用排程(控制台>>工作排程)來幫我們每日備份或者其他時間備份。
清除檔案的工作也可以交給Batch來做,尤其是要清除一些讓人覺得很厭煩的垃圾檔案,
將以下的文字存檔成clean.bat
rem. ####### Clean Files ###########
@echo off
IF "%1" =="" goto NONCMD
del /F /Q /A %1:\*.sqm
del /F /Q /A %1:\autoruns.inf
goto :END
:NONCMD
set /p label=Enter a Drive Label:
del /F /Q /A %label%:\*.sqm
del /F /Q /A %label%:\autoruns.inf
goto :END
:END
echo.Clean Completed!
@echo on
rem. ###############################
上面就是一個比較標準的batch file範例,一開始跟結尾用了echo off/on只是要設定將中間的處理過程不要將所有的狀態都寫是在command line底下而已,其實你也可以不用這樣設定。
%1對應著第一個參數,如果你在cmd底下這樣輸入clean c,那clean對應到%0,而c對應到%1,依此類推就會有%2,%3,%4......。
IF內的比較運算還有(equ,neq,lss,leq,gtr,geq),通常我們都會搭配著goto來使用,要注意的是,如果我們要跳到END,那END的片段宣告必須是:END是要加上:這個符號的。
del所接著參數解釋如下:
/F:強制刪除唯獨檔
/Q:寧靜模式
/A:刪除系統檔,隱藏檔,唯獨檔等類型
經由del刪除後是直接刪除,所以讀者在使用這些參數及del實務必要小心。
多數人都懶得從cmd底下去執行batch file,所以在前面的指令我就先判斷使用者是否有接參數,如果沒有的話就要跳出提示視窗讓使用者輸入drive label,這部份就是由set /p label=Enter a Drive Label:來處理,這樣的功能也是可以適用在cmd底下的。
你可以增加更多清除的項目,讓這個clean.bat更加完善。
rem.========== List All Dirs ===============
dir /s /on /b /a:d > dir.txt
FOR /F %%v IN (dir.txt) DO dir %%v > %%v/list.txt
rem. ================================
上面兩行指令可以讓每個子目錄下都建議一個目錄資料夾清單(list.txt).
Batch Lauguage基本常用的就先介紹到這裡,更詳細的訊息你可以參考下面的網頁:
MS-DOS/MSDOS Batch Files: Batch File Tutorial and Reference:
No comments:
Post a Comment