You are on page 1of 8

ex1.

@ECHO OFF

CD C:\Program Files (x86)\Google\Chrome

PAUSE

REM 複製到 D:\底下~~~

COPY  *.txt  D:\David\備份 BA~1\電腦\Chrome

ECHO finish

第一行打 "ECHO OFF",這樣一來之後的命令都不會顯示,改成 "ECHO ON" 的話,每行輸入的命令就都

會出現在螢幕上~

第二行 CD <路徑> 就是前往那個路徑,這是基本的 DOS 語法(不知道見下面)

第三行 PAUSE 會暫停,cmd 視窗就會停住等你按任意鍵繼續

第四行 REM 是註解用的 (remark),DOS 會略過此行

第五行 COPY  *.txt  <路徑>,是複製所有 txt 結尾的檔案,到路徑目標資料夾那裡( *是萬用字元,也是

基本 DOS 語法喔 xD)

第六行 ECHO finish,會在螢幕上顯示 ECHO 後面的字串,所以就會顯示 "finish"

第五行注意:

       COPY  *.txt   D:\David\備份 BA~1\電腦\Chrome

它的路徑原本是 " D:\小 David\備份 Backups\電腦\Chrome "

但是因為 "備份 Backups" 這個檔名裡面含有空格,DOS 無法接受,所以需要轉換成 8.3 format,

轉換方法是在某個目錄底下打 "dir/x",就會以 8.3 的格式列出目錄底下的檔名了~


ex2.
@ECHO OFF

IF "%1"=="A" ECHO Apple

IF "%1"=="B" ECHO Boy

輸入:C:\sp.bat  A

輸出:Apple

假設這個程式叫做 "sp",並且放在 C:\ 底下,

那麼,當我們在 cmd 輸入 "C:\sp.bat  A" 時,參數 "A" 就會被讀到 %1 裡面,於是程式最後就印出

了 "Apple"。

補充一點:最多可以傳送九個參數喔,%1 ~ %9
ex3.
@ECHO OFF 

CD D:\David\備份 BA~1\電腦\Chrome\

IF EXIST %1 GOTO PrintFile

GOTO FileNotExist

:PrintFile

    TYPE %1

    GOTO End

:FileNotExist

    ECHO File Not Exist!

    GOTO End

:End

輸入:C:\test.bat  list.txt

輸出:< list.txt  檔案裡的內容 >

假設這個程式叫做 "test.bat",並且 "D:\David\備份 BA~1\電腦\Chrome\" 底下有放一個叫 "list.txt" 的檔

案,

那麼當輸入上面那一串內容時,就會把 txt 裡面內容都印出來。而若找不到此一檔案名稱,就會印出 "File


Not Exist!"

補充一點:BAT 程式裡,所有的 "%1" 都是會被輸入參數直接取代掉的喔~

第三行,IF EXIST <路徑> <檔名> <動作> ;路徑如果是同個資料夾就可以忽略;其實也可以改成 IF NOT


EXIST <.....>

第三行,GOTO PrintFile,效果是直接跳到第五行 ":PrintFile" 那裡執行,也就是說中間的都會略過不執行;

標籤的名字可以隨便取,像是 "ABC_NAME001" 等等
第四行,如果第三行沒有跳走的話,就會 GOTO 跳到 FileNotExist

第五~七行,是 PrintFile 所要執行的內容;TYPE <檔名> 會把那個檔案印出來,eg. TYPE list.txt

第七行,執行完記得要再 GOTO 到底下的 :End,否則它會繼續往下執行第八行、第九行喔!

第八~十行,是 FileNotExist 所要執行的內容


For /f

範例:
Ref.
https://blog.miniasp.com/post/2010/09/24/How-to-parse-text-from-file-or-
command-using-Batch

You might also like