-
批次檔心得筆記
自己寫批次檔的經驗不多,常需要參考別人寫的範例,完成一些簡單的操作。經過多年的摧殘,終於略有心得,在此野人獻曝一番。
喜愛命令行、批次處理的你,歡迎分享個人的使用經驗。不過,本主題的定位,並非想當成指令索引、工具書看待,這樣會缺少樂趣。
先想一個範例心得好了,標題是「內部命令 echo 的小應用」。
===============
1. 內部命令 echo 的小應用
想產生一個 test.reg 的檔案,內容如下:
[code]
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\CTF]
"Disable Thread Input Manager"=dword:00000001
[/code]
自己大都是這樣寫的。
[code]
echo Windows Registry Editor Version 5.00[color=red]>test.reg[/color]
echo.[color=red]>>test.reg[/color]
echo [HKEY_CURRENT_USER\Software\Microsoft\CTF][color=red]>>test.reg[/color]
echo "Disable Thread Input Manager"=dword:00000001[color=red]>>test.reg[/color]
echo.[color=red]>>test.reg[/color]
[/code]
不過,以下這種寫法也是可以的。用小括弧將 echo 命令打包,最後輸出到檔案。
[code]
[color=red]([/color]
echo Windows Registry Editor Version 5.00
echo.
echo [HKEY_CURRENT_USER\Software\Microsoft\CTF]
echo "Disable Thread Input Manager"=dword:00000001
echo.
[color=red])[/color][color=red]>test.reg[/color]
[/code]
依據前一個寫法,又修改了一下。效果和前面的相同。
[code]
(
echo[color=red]/[/color]Windows Registry Editor Version 5.00
echo[color=red]/[/color]
echo[color=red]/[/color][HKEY_CURRENT_USER\Software\Microsoft\CTF]
echo[color=red]/[/color]"Disable Thread Input Manager"=dword:00000001
echo[color=red]/[/color]
)>test.reg
[/code]
因為是自由格式 (free format),所以想要這樣寫也行。只有一個小地方要注意,那就是 '>' 必須和 ')' 在同一行。
[code]
( echo/Windows Registry Editor Version 5.00
echo/
echo/[HKEY_CURRENT_USER\Software\Microsoft\CTF]
echo/"Disable Thread Input Manager"=dword:00000001
echo/
[color=red])[/color] [color=red]>[/color] test.reg
[/code]
此外,如果想新增一個 0 位元組的檔案,可以使用以下的外部命令:
[code]
fsutil file createnew new.txt 0
[/code]
用這個方法也可以達到相同的效果:
[code]
echo on 1>1.txt 2>2.txt
[/code]
還有這個當然也行:
[code]
echo 1>nul 2>3.txt
[/code]
-
2. 註解的使用
正規的使用方法:
[code]
[color=red]REM[/color] comment1
[color=red]Rem[/color] comment2
[color=red]rem[/color] comment3
[/code]
進階使用者喜歡這樣寫:
[code]
[color=red]::[/color] comment1
[color=red]::[/color] comment2
[color=red]::[/color] comment3
[/code]
某些操作不想執行,但又希望保留內容:
[code]
[color=red]:[/color] regsvr32 /s /u zipfldr.dll
[/code]
一個「:」加上一段文字敘述,即成為一個標籤 (label),常和 if / goto 搭配使用。為了保險起見,用連續兩個「:」較好,以便區分用途。