批處理命令教學(xué)之復(fù)合語(yǔ)句連接符(&、&&和||)
幫助信息:
& [...] command1 & command2 用來(lái)分隔一個(gè)命令行中的多個(gè)命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后運(yùn)行第二個(gè)命令。
&& [...] command1 && command2 只有在符號(hào) && 前面的命令成功時(shí),才用于運(yùn)行該符號(hào)后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令運(yùn)行成功時(shí)才運(yùn)行第二個(gè)命令。
|| [...] command1 || command2 只有在符號(hào) || 前面的命令失敗時(shí),才用于運(yùn)行符號(hào) || 后面的命令。Cmd.exe 運(yùn)行第一個(gè)命令,然后只有在第一個(gè)命令未能運(yùn)行成功(接收到大于零的錯(cuò)誤代碼)時(shí)才運(yùn)行第二個(gè)命令。
以上都是官方的幫助信息(引用于ntcmds.chm),最好用googl搜索下載一本。
命令概括:
& 一般念“and”。
參數(shù)詳解:
1.先說(shuō)說(shuō)&
“用來(lái)分隔一個(gè)命令行中的多個(gè)命令”,官方的這種解釋?zhuān)鋵?shí)是從解釋器的角度出發(fā)的。如果按人的角度來(lái)說(shuō)的話(huà),應(yīng)該是“連接多條命令”。
比如我要輸出 hello 和 world 2行文本,用”&“將兩條echo命令連接。
@echo off
echo hello & echo world
pause
“&”在使用中最常出現(xiàn)的問(wèn)題是變量延遲,關(guān)于這個(gè)問(wèn)題,可以參考批處理for語(yǔ)句從入門(mén)到精通中關(guān)于這個(gè)知識(shí)點(diǎn)的部分。
2.再說(shuō)說(shuō)ErrorLevel
ErrorLevel由兩個(gè)單詞構(gòu)成,一個(gè)Error(錯(cuò)誤),一個(gè)Level(等級(jí)),如果綜合這兩個(gè)單詞,字面意義其實(shí)就是”錯(cuò)誤數(shù)量“或者”錯(cuò)誤類(lèi)型“。
如果命令執(zhí)行成功,那么”錯(cuò)誤數(shù)量“自然是零。如果執(zhí)行失敗,那么”錯(cuò)誤數(shù)量“就是非零。
關(guān)于ErrorLevel的帖子:
批處理內(nèi)部命令對(duì)錯(cuò)誤返回碼errorlevel的影響
對(duì)批處理中errorlevel的幾點(diǎn)猜測(cè)
3.執(zhí)行符號(hào)前的命令成功就執(zhí)行符號(hào)后的命令
輸出 hello 和 world 2行文本,用”&&“將兩條echo命令連接。
@echo off
echo hello && echo world
pause
執(zhí)行的結(jié)果和用"&"鏈接兩條命令時(shí)一模一樣,那么”&“和"&&"功能一樣嗎?
答案是:它們的功能完全不同,這種一樣的結(jié)果不過(guò)是一種巧合罷了。
”&“的作用不過(guò)是鏈接多條命令,而”&&“是為了判斷符號(hào)前的命令是否執(zhí)行成功,從而決定是否執(zhí)行符號(hào)后的命令。
這里舉一個(gè)例子來(lái)加以說(shuō)明:
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命令打開(kāi)一個(gè)不存在的文件,由于文件是不存在的,所以start命令執(zhí)行失敗,這時(shí)用"&&"鏈接的命令”echo hello“沒(méi)有執(zhí)行,而用”&“鏈接的執(zhí)行了。
”&&“的這種特性,讓它成為了特殊的條件運(yùn)算符。
4.執(zhí)行符號(hào)前的命令失敗就執(zhí)行符號(hào)后的命令
&&的否定操作就是||。
例如:
C:\Users\helloworld\Desktop>start "" "111.txt" || echo hello
系統(tǒng)找不到文件 111.txt。
hello
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
自制控制進(jìn)程和控制開(kāi)機(jī)啟動(dòng)項(xiàng)批處理(ntsd強(qiáng)制結(jié)束版)
這篇文章主要介紹了自制控制進(jìn)程和控制開(kāi)機(jī)啟動(dòng)項(xiàng)批處理,需要的朋友可以參考下2014-05-05Cmd 啟動(dòng)命令解釋器 Cmd.exe 的新實(shí)例
Cmd 啟動(dòng)命令解釋器 Cmd.exe 的新實(shí)例...2007-09-09windows7系統(tǒng)去除快捷方式小箭頭BAT腳本分享
這篇文章主要介紹了windows7系統(tǒng)去除快捷方式小箭頭BAT腳本分享,本文直接給出實(shí)現(xiàn)代碼,適用Win7系統(tǒng),需要的朋友可以參考下2014-12-12關(guān)于批處理中FOR語(yǔ)句的使用說(shuō)明與學(xué)習(xí)技巧
關(guān)于批處理中FOR語(yǔ)句的使用說(shuō)明與學(xué)習(xí)技巧...2007-10-10.bat文件中start、pause、goto及rem的用法示例
最近接觸到了bat批處理命令,發(fā)現(xiàn)了一些以前沒(méi)注意到的知識(shí)點(diǎn),所以下面這篇文章主要給大家介紹了關(guān)于.bat文件中start、pause、goto及rem用法的相關(guān)資料,需要的朋友可以參考下2022-04-04Convert 將 FAT 和 FAT32 卷轉(zhuǎn)換為 NTFS
Convert 將 FAT 和 FAT32 卷轉(zhuǎn)換為 NTFS...2007-09-09通過(guò)批處理關(guān)閉135 137 445等端口的實(shí)現(xiàn)代碼(勒索病毒)
這篇文章主要介紹了通過(guò)批處理關(guān)閉135 137 445等端口的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-08-08windows系統(tǒng)配制wget計(jì)劃任務(wù)腳本
這篇文章主要介紹了windows系統(tǒng)配制wget計(jì)劃任務(wù)腳本,需要的朋友可以參考下2014-04-04