批處理文件(batch file)包含一系列 DOS命令,通常用于自動執行重復性任務。
用戶只需雙擊批處理文件便可執行任務,而無需重復輸入相同指令。編寫批處理文件非常簡單,但難點在于確保一切按順序執行。編寫嚴謹的批處理文件可以極大程度地節省時間,在應對重復性工作時尤其有效。
步驟
注意:Linux 系統下的解決方案為 shell 腳本,而非批處理文件。想要了解如何在 Linux 系統下編寫 shell 腳本,請參閱這份指南。?
1.打開記事本程序
記事本程序可用來以文本文件格式編寫代碼,并將寫好的代碼以批處理文件格式保存。單擊“開始”→“應用程序”→“記事本”,或在運行對話框中輸入 notepad 打開程序。
2.學習一些基本的批處理命令
?
批處理文件需要運行一系列 DOS 命令,因此批處理文件的命令與 DOS 命令較為相似。以下是一些較為重要的命令:
?ECHO ---------------------------- 隱藏通常顯示的文字
? @ECHO OFF ------------------ 用默認程序打開一個文件
? START --------------------------- 用默認程序打開一個文件
? REM ------------------------------ 在程序中插入一個注釋行
? MKDIR/RMDIR ---------------- 創建/刪除目錄
? DEL - -----------------------------刪除一個或多個文件
? COPY ---------------------------- 復制一個或多個文件
? XCOPY ---------------------------為復制文件添加更多選項
? FOR/IN/DO - --------------------對文件進行說明
? TITLE - ---------------------------編輯窗口標題
3.編寫程序以創建目錄
學習創建批處理文件的一個簡單方法,便是首先專注于完成一項基本任務。例如,可以利用批處理文件快速創建多個目錄:
"
MKDIR f:\example1
MKDIR f:\example2
"
4.保存文件
輸入代碼后,便可將文件以批處理文件類型保存。點擊“文件”→“另存為”。在下拉菜單中點擊“保存類型”,選擇“所有文件”,為程序輸入一個名字,以 .bat 或 .cmd 格式結尾。
最后,為選擇編碼類型為ANSI,然后保存文件。
5編寫基礎備份程序
批處理文件非常適合運行多個命令,若配置其運行多次則效果更佳。通過 XCOPY 命令,用戶可以創建一個批處理文件,從選定文件夾中復制文件至備份文件夾,且僅會覆蓋最近一次復制時更新的文件。
"
@ECHO OFF?
XCOPY c:\original c:\backupfolder /m /e /y
"
這將把original文件夾中的文件復制到backupfolder文件夾中。用戶也可將其替換為任意路徑。
/m代表僅復制更新過的文件,/e代表列出目錄中的所有子目錄都會被拷貝,/y代表每次文件被覆蓋,屏幕上都將出現確認信息。
6.保存文件
輸入代碼后,便可將文件以批處理文件類型保存。點擊“文件”→“另存為”。
? 在下拉菜單中點擊“保存類型”。
? 選擇“全部文件”。
? 為程序輸入一個名字,以.bat或.cmd格式結尾。
7編寫高級備份程序
?
把文件從一個文件夾復制到另一個當中固然不錯,但如果要同時將文件分門別類,便需要 FOR/IN/DO 命令。這個命令可以用來通過擴展判斷文件去向。
"
@ECHO OFF?
cd c:\source
REM 這是你想要排序的文件目錄
FOR %%f IN (*.doc *.txt) DO XCOPY c:\source\"%%f" c:\text /m /y
REM 這行命令會把所有的.doc文件從c:\source移動到c:\text
REM %%f 是一個變量
FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:\source\"%%f" c:\images /m /y
REM 這行代碼會把所有的.jpg .png .bmp圖片文件從c:\source移動到c:\images
"
8保存文件
?
輸入代碼后,便可將文件以批處理文件類型保存。點擊“文件”→“另存為”,
? 在下拉菜單中點擊“保存類型”。
? 選擇“全部文件”。
? 為程序輸入一個名字,以.bat或.cmd格式結尾
小提示
? 如果你的文件路徑里包含空格,記得使用引號,例如"C:\Documents and Settings\"。? 在Windows 2000或之后的系統中,批處理文件也可能是.cmd格式的。它們在執行的時候并無不同,只不過.cmd文件采用32數位執行,而.bat文件采用16數位。
? 你可以試著用一些第三方編輯器來編輯批處理文件,例如 UltraEdit。不過對簡單的文件來說,自己直接寫反而更省時間。
指令的結構:?
用法:???? rar <命令> -<開關 1> -<開關 N> <壓縮文件> <文件...>?????????????? <@列表文件...> <解壓路徑\>?
例如:
rar a -df %filename%.rar %filename%.dmp
表示的是,將某個dmp文件打包為rar.
參數說明: ? ?
? ? ? a ? ?添加文件到壓縮文件中 ? ?
? ? ? -k ? 鎖定壓縮文件 ? ?
? ? ? -s ? 產生固體存檔,這樣可以增大壓縮比 ? ?
? ? ? -r ? 包括子目錄 ? ?
? ? ? -m1 設置壓縮比 ? ? ??
? ? ? -m0 ? 存儲 ? ? ?添加到壓縮文件時不壓縮文件。 ? ? ??
? ? ? -m1 ? 最快 ? ? ?使用最快方式(低壓縮) ? ? ??
? ? ? -m2 ? 較快 ? ? ?使用快速壓縮方式 ? ? ??
? ? ? -m3 ? 標準 ? ? ?使用標準(默認)壓縮方式 ? ? ??
? ? ? -m4 ? 較好 ? ? ?使用較好壓縮方式(較好壓縮,但是慢) ? ? ??
? ? ? -m5 ? 最好 ? ? ?使用最大壓縮方式(最好的壓縮,但是最慢) ? ? ??
? ? ? -ep ?從名稱中排除路徑 ? ? ??
? ? ? -ep1從名稱中排除基本目錄 ?我用它來壓縮只是最終目錄中的文件,在解壓?
? ? ? ? ? ? ?后不包括E:\wwwroot\Web\ 這樣的路徑.
?
REM 打包zip
@ECHO OFF
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
?::set hour=%time:~0,2%
?::set min=%time:~3,2%
set curdate=%year%%month%%day%%hour%%min%
"D:\Softs\WinRAR\Rar.exe" a -r -s -ml dabao.zip_%curdate%.zip .\aaa\*
REM 這是WinRARRar.exe,? ?.\aaa\* 是批處理文件所在的目錄下的aaa文件下面的所有文件,
?"D:\Softs\Haozip\Haozip.exe" a -r -s -ml dabao.zip_%curdate%.zip .\aaa\*
REM 這是haozip
?
注意事項:
縮的時候最好在命名中加上時間,免得多次打包文件覆蓋。