iT邦幫忙

DAY 11
4

DOS 不死系列 第 11

批次檔中特殊符號@、::、%的用途

在批次檔會使用一些特殊符號,這些符號的用途是什麼?讓我來簡單介紹一下吧!
@是不顯示該行的指令,通常會在批次檔的第一行就直接用,省得每一行指令都要寫一次:

@echo off

::跟REM是一樣的功能,就是作為註解說明用途,例如:

:: 我是註解
REM 這行也是註解

%之後會接著一個數字,用來接收傳進來的參數。%0代表批次檔本身,%1代表第一個參數,其餘依此類推,最多可以有255個。

把下面的指令存檔成 test.cmd:

@echo off
echo 批次檔名是:%0
echo %1!%2

然後執行:

test 您好 alexc

執行結果:

批次檔名是:test
您好!alexc

上一篇
IF條件判斷(3) - 檢查檔案或目錄是否存在
下一篇
&、&&、||的用途
系列文
DOS 不死18
0
鐵殼心
iT邦高手 1 級 ‧ 2010-10-19 06:52:43

這個我喜歡開心

0
Ken(Bigcandy)
iT邦大師 1 級 ‧ 2010-10-20 10:36:24

tecksin提到:
我喜歡

+1

不過癮,我還要~~

0
Pankt
iT邦研究生 1 級 ‧ 2010-10-20 16:50:52

也來分享一個 "" 雙引號
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\

你要加上原因啦:『長檔名或是特殊字元,無法辨識』,前後加上雙引號即可。

花輪 iT邦大師 1 級 ‧ 2010-10-20 22:39:15 檢舉

記得是不是 '' 單引號也行?疑惑

Pankt iT邦研究生 1 級 ‧ 2010-10-21 08:51:34 檢舉

Tks. 補充

0
player
iT邦大師 1 級 ‧ 2010-10-20 17:25:06

少寫了管線相關的那幾個喔
如果我沒記錯的話

< 串流輸入(通常是接讀取當輸入的檔名)

串流輸出(通常是接要寫入當輸出的檔名, 如果檔案已存在就覆蓋)

串流輸出(如果要串在原來檔案的後面的話)
| 管線(把前面執行的程式的輸出, 串給後面程式的輸入)

0
Pankt
iT邦研究生 1 級 ‧ 2010-10-21 09:33:30

共襄盛舉,再接再厲!!
@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

我要留言

立即登入留言