若有錯誤,歡迎指出bash
批腳本中只支持行註釋。命令行
rem
用於在批處理文件中添加註解或說明,且該命令會輸出一個換行;code
:
後緊跟一個:
或空格、製表符也可起到註釋的做用。ip
echo
用以顯示消息和啓用或關閉命令回顯。rem
使用不帶參數的echo
將顯示當前回顯設置,使用echo [on | off]
打開或關閉回顯功能。字符串
顯示消息時,該命令將在消息後輸出兩個換行。cmd
若
echo
緊跟一個.
,那個將輸出空的消息,若是其後又緊跟文本,那麼.
將被視爲,即
echo.hi
等同於echo hi
。string
將@
置於命令前,將關閉該命令自己的回顯。it
清除屏幕。table
暫停批處理程序,並顯示如下消息:
請按任意鍵繼續. . .
若要顯示其它提示語,可使用echo [other prompt] & pause > nul
。
設置命令提示窗口的窗口標題。
將 cmd.exe 定向到批處理程序中帶標籤的行。
GOTO label
label
指定批處理程序中用做標籤的文字字符串。
標籤必須單獨一行,而且以冒號打頭。
使用特殊標籤``goto :eof將控制轉移到當前批腳本文件的結尾,注意
eof前有
:。通過試驗,通常的標籤前加上
:`後仍可有效跳轉。
在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[ ...]]
param | meaning |
---|---|
/V | 顯示全部未包含指定字符串的行 |
/C | 僅顯示包含字符串的行數 |
/N | 顯示行號 |
/I | 搜索字符串時忽略大小寫 |
"string" | 指定要搜索的文本字符串 |
[drive:][path]filename | 指定要搜索的文件 |
若是沒有指定路徑,FIND 將搜索在提示符處鍵入的文本或者由另外一命令產生的文本。
啓動 Windows 命令解釋器的一個新實例。
/C 執行字符串指定的命令而後終止
/K 執行字符串指定的命令但保留
若是指定了 /C 或 /K,則會將該開關以後的剩餘部分做爲一個命令行處理。
啓動一個單獨的窗口以運行指定的程序或命令。
START ["title"] [/D path] [/MIN] [/MAX] [command/program] [parameters]
"title" 在窗口標題欄中顯示的標題。
path 啓動目錄。
MIN 以最小化方式啓動窗口。
MAX 以最大化方式啓動窗口。
command/program
parameters 這些是傳遞給 command/program 的參數。
更改批處理文件中可替換參數的位置。
SHIFT [/n]
若是命令擴展被啓用,SHIFT 命令支持/n
命令行開關;該命令行開關告訴命令從第 n 個參數開始移位;n 介於零和八之間。
例如:SHIFT /2
會將 %3 移位到 %2,將 %4 移位到 %3,等等;而且不影響 %0 和 %1。
條件判斷執行批處理程序中的條件處理。
IF [NOT] ERRORLEVEL number command
若是最後運行的程序返回一個等於或大於指定數字的退出代碼,指定條件爲 true。
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
必須出如今同一行的 IF 以後,如:
@echo off echo hello fakeCommand if not errorlevel 1 ( echo world ) else ( echo "That's impossible." ) exit
退出 CMD.EXE 程序(命令解釋器)或當前批處理腳本。
EXIT [/B] [exitCode]
/B
僅退出當前批腳本而不關閉 CMD.EXE。若是在批腳本外執行,則仍會關閉 CMD.EXE。
exitCode
指定一個數字。若是指定了 /B,將ERRORLEVEL
設成該數字;不然退出 CMD.EXE,並用該數字設置過程退出代碼。
在一個批腳本文件中調用另外一個批腳本文件,並傳遞參數。
CALL [drive:][path]filename [batch-parameters]
該命令亦有以下形式:
CALL :label arguments
這將建立一個新的批腳本文件上下文,並傳遞參數。那麼如何從這種調用中退出呢?由於上下文被視爲一個批腳本文件,因此當控制流到達文件結尾時,該上下文便會結束,即便用goto :eof
。
@echo off call :func1 pass arguments as parameters call :func2 exit /b :func1 echo %* echo Hello goto :eof :func2 echo World goto :eof
注意:這裏的參數指的是
parameter
批腳本里的 %*
指出全部的參數(如 %1 %2 %3 %4 %5 ...)
可以使用如下語法對批參數(%n
)進行替換:
%~1 - 刪除引號("),擴展 %1
%~f1 - 將 %1 擴展到一個徹底合格的路徑名
%~d1 - 僅將 %1 擴展到一個驅動器號
%~p1 - 僅將 %1 擴展到一個路徑
%~n1 - 僅將 %1 擴展到一個文件名
%~x1 - 僅將 %1 擴展到一個文件擴展名
%~s1 - 擴展的路徑只含有短名
%~a1 - 將 %1 擴展到文件屬性
%~t1 - 將 %1 擴展到文件的日期/時間
%~z1 - 將 %1 擴展到文件的大小
%~$PATH:1 - 查找列在 PATH 環境變量的目錄,並將 %1 擴展到找到的第一個徹底合格的名稱。若是環境變量名未被定義,或者沒有找到文件,此修改符會擴展到空字符串。
能夠組合修改符來取得多重結果:
%~dp1 - 只將 %1 擴展到驅動器號和路徑
%~nx1 - 只將 %1 擴展到文件名和擴展名
%~dp$PATH:1 - 在列在 PATH 環境變量中的目錄裏查找 %1,並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到相似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 能夠被其餘有效數值替換。%~
語法終止於第一個有效參數號碼。
相似於bash
中的?
變量,使用echo %errorlevel%
查看。通常當命令成功執行時,其值爲0
。
cd
和__cd__
C:\Users\never>echo %cd% C:\Users\never C:\Users\never>echo %__cd__% C:\Users\never\