在批次檔會使用一些特殊符號,這些符號的用途是什麼?讓我來簡單介紹一下吧!
@是不顯示該行的指令,通常會在批次檔的第一行就直接用,省得每一行指令都要寫一次:
@echo off
::跟REM是一樣的功能,就是作為註解說明用途,例如:
:: 我是註解
REM 這行也是註解
%之後會接著一個數字,用來接收傳進來的參數。%0代表批次檔本身,%1代表第一個參數,其餘依此類推,最多可以有255個。
把下面的指令存檔成 test.cmd:
@echo off
echo 批次檔名是:%0
echo %1!%2
然後執行:
test 您好 alexc
執行結果:
批次檔名是:test
您好!alexc
也來分享一個 "" 雙引號
if Exist C:\Program Files\Dat\*.Dat Copy C:\Program Files\Dat\*.Dat D:\Back\
執行這個批次檔,系統不會理你
因為所指的目錄含有空白,必須將整個Path 用雙引號圈住才有作用
if Exist "C:\Program Files\Dat\*.Dat" Copy "C:\Program Files\Dat\*.Dat" D:\Back\
你要加上原因啦:『長檔名或是特殊字元,無法辨識』,前後加上雙引號即可。
記得是不是 '' 單引號也行?
Tks. 補充
少寫了管線相關的那幾個喔
如果我沒記錯的話
< 串流輸入(通常是接讀取當輸入的檔名)
串流輸出(通常是接要寫入當輸出的檔名, 如果檔案已存在就覆蓋)
串流輸出(如果要串在原來檔案的後面的話)
| 管線(把前面執行的程式的輸出, 串給後面程式的輸入)
共襄盛舉,再接再厲!!
@Echo off
DIR | sort > t.txt
REM 顯示目錄,經由管道排序後,建立一個叫 t.txt的檔案
@Echo -------------------- >> t.txt
REM 將 -------------------- 這串符號 加在 t.txt 後面
Dir | Find "t.txt" >> t.txt
REM 顯示目錄,經由管道搜尋目錄裡檔案中含有t.txt文字的檔案全部列出來.並加在 t.txt後面
Type t.txt