批處理命令教學(xué)之復(fù)合語句連接符(&、&&和||)
幫助信息:
& [...] command1 & command2 用來分隔一個(gè)命令行中的多個(gè)命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后運(yùn)行第二個(gè)命令。
&& [...] command1 && command2 只有在符號 && 前面的命令成功時(shí),才用于運(yùn)行該符號后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令運(yùn)行成功時(shí)才運(yùn)行第二個(gè)命令。
|| [...] command1 || command2 只有在符號 || 前面的命令失敗時(shí),才用于運(yùn)行符號 || 后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令未能運(yùn)行成功(接收到大于零的錯(cuò)誤代碼)時(shí)才運(yùn)行第二個(gè)命令。
以上都是官方的幫助信息(引用于ntcmds.chm),最好用googl搜索下載一本。
命令概括:
& 一般念“and”。
參數(shù)詳解:
1.先說說&
“用來分隔一個(gè)命令行中的多個(gè)命令”,官方的這種解釋,其實(shí)是從解釋器的角度出發(fā)的。如果按人的角度來說的話,應(yīng)該是“連接多條命令”。
比如我要輸出 hello 和 world 2行文本,用”&“將兩條echo命令連接。
@echo off
echo hello & echo world
pause
“&”在使用中最常出現(xiàn)的問題是變量延遲,關(guān)于這個(gè)問題,可以參考批處理for語句從入門到精通中關(guān)于這個(gè)知識點(diǎn)的部分。
2.再說說ErrorLevel
ErrorLevel由兩個(gè)單詞構(gòu)成,一個(gè)Error(錯(cuò)誤),一個(gè)Level(等級),如果綜合這兩個(gè)單詞,字面意義其實(shí)就是”錯(cuò)誤數(shù)量“或者”錯(cuò)誤類型“。
如果命令執(zhí)行成功,那么”錯(cuò)誤數(shù)量“自然是零。如果執(zhí)行失敗,那么”錯(cuò)誤數(shù)量“就是非零。
關(guān)于ErrorLevel的帖子:
批處理內(nèi)部命令對錯(cuò)誤返回碼errorlevel的影響
對批處理中errorlevel的幾點(diǎn)猜測
3.執(zhí)行符號前的命令成功就執(zhí)行符號后的命令
輸出 hello 和 world 2行文本,用”&&“將兩條echo命令連接。
@echo off
echo hello && echo world
pause
執(zhí)行的結(jié)果和用"&"鏈接兩條命令時(shí)一模一樣,那么”&“和"&&"功能一樣嗎?
答案是:它們的功能完全不同,這種一樣的結(jié)果不過是一種巧合罷了。
”&“的作用不過是鏈接多條命令,而”&&“是為了判斷符號前的命令是否執(zhí)行成功,從而決定是否執(zhí)行符號后的命令。
這里舉一個(gè)例子來加以說明:
C:\Users\helloworld\Desktop>start "" "111.txt" && echo hello
系統(tǒng)找不到文件 111.txt。
C:\Users\helloworld\Desktop>start "" "111.txt" & echo hello
系統(tǒng)找不到文件 111.txt。
hello
用start命令打開一個(gè)不存在的文件,由于文件是不存在的,所以start命令執(zhí)行失敗,這時(shí)用"&&"鏈接的命令”echo hello“沒有執(zhí)行,而用”&“鏈接的執(zhí)行了。
”&&“的這種特性,讓它成為了特殊的條件運(yùn)算符。
4.執(zhí)行符號前的命令失敗就執(zhí)行符號后的命令
&&的否定操作就是||。
例如:
C:\Users\helloworld\Desktop>start "" "111.txt" || echo hello
系統(tǒng)找不到文件 111.txt。
hello
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
上一篇:Windows下使用命令實(shí)現(xiàn)文件換行符替換
欄 目:DOS/BAT
下一篇:使用BAT一句話命令實(shí)現(xiàn)快速合并JS、CSS
本文標(biāo)題:批處理命令教學(xué)之復(fù)合語句連接符(&、&&和||)
本文地址:http://mengdiqiu.com.cn/a1/DOS_BAT/10118.html
您可能感興趣的文章
- 01-10DOS下查看硬盤分區(qū)該使用什么命令
- 01-10使用批處理實(shí)現(xiàn)軟件的自動安裝以安裝搜狗拼音為例
- 01-10通過批處理修改DNS的代碼(推薦)
- 01-10windows使用批處理發(fā)布web到tomcat并啟動tomcat腳本分享
- 01-10再談DOS批處理下格式化日期字符串的三種方法(詳解)
- 01-10用批處理一鍵安裝兩種擴(kuò)展名的Windows系統(tǒng)補(bǔ)丁
- 01-10ip地址切換批處理腳本分享
- 01-10ftp自動下載文件腳本分享(ftp命令下載文件)
- 01-10dos命令行不能輸入中文怎么辦該如何解決
- 01-10批處理?xiàng)钶x三角效果實(shí)現(xiàn)代碼


閱讀排行
本欄相關(guān)
- 01-10DOS下查看硬盤分區(qū)該使用什么命令
- 01-10使用批處理實(shí)現(xiàn)軟件的自動安裝以安
- 01-10后臺運(yùn)行bat定時(shí)器程序示例分享
- 01-10通過批處理修改DNS的代碼(推薦)
- 01-10dota2服務(wù)器ping測試腳本分享
- 01-10再談DOS批處理下格式化日期字符串的
- 01-10windows使用批處理發(fā)布web到tomcat并啟動
- 01-10win7怎么設(shè)定關(guān)閉顯示器時(shí)間
- 01-10屏蔽up鍵禁止游戲運(yùn)行腳本分享
- 01-10win7創(chuàng)建wifi熱點(diǎn)腳本分享
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法