bat中的連線符

2021-09-08 11:30:30 字數 1726 閱讀 4233

& [...] command1 & command2 用來分隔乙個命令列中的多個命令。cmd.exe 執行第乙個命令,然後執行第二個命令。 

&& [...] command1 && command2 只有在符號 && 前面的命令成功時,才用於執行該符號後面的命令。cmd.exe 執行第乙個命令,然後只有在第乙個命令執行成功時才執行第二個命令。 

|| [...] command1 || command2 只有在符號 || 前面的命令失敗時,才用於執行符號 || 後面的命令。cmd.exe 執行第乙個命令,然後只有在第乙個命令未能執行成功(接收到大於零的錯誤**)時才執行第二個命令。 

命令概括:

& 一般念「and」。

引數詳解:

1.先說說&

「用來分隔乙個命令列中的多個命令」,官方的這種解釋,其實是從直譯器的角度出發的。如果按人的角度來說的話,應該是「連線多條命令」。

比如我要輸出 hello 和 world 2行文字,用」&「將兩條echo命令連線。

複製** **如下:

@echo off

echo hello & echo world

pause

「&」在使用中最常出現的問題是變數延遲,關於這個問題,可以參考批處理for語句從入門到精通中關於這個知識點的部分。

2.再說說errorlevel

errorlevel由兩個單詞構成,乙個error(錯誤),乙個level(等級),如果綜合這兩個單詞,字面意義其實就是」錯誤數量「或者」錯誤型別「。

如果命令執行成功,那麼」錯誤數量「自然是零。如果執行失敗,那麼」錯誤數量「就是非零。

關於errorlevel的帖子:

批處理內部命令對錯誤返回碼errorlevel的影響

對批處理中errorlevel的幾點猜測

3.執行符號前的命令成功就執行符號後的命令

輸出 hello 和 world 2行文字,用」&&「將兩條echo命令連線。

複製** **如下:

@echo off

echo hello && echo world

pause

執行的結果和用"&"鏈結兩條命令時一模一樣,那麼」&「和"&&"功能一樣嗎?

答案是:它們的功能完全不同,這種一樣的結果不過是一種巧合罷了。

」&「的作用不過是鏈結多條命令,而」&&「是為了判斷符號前的命令是否執行成功,從而決定是否執行符號後的命令。

這裡舉乙個例子來加以說明:

複製** **如下:

c:\users\helloworld\desktop>start "" "111.txt" && echo hello

系統找不到檔案 111.txt。

c:\users\helloworld\desktop>start "" "111.txt" & echo hello

系統找不到檔案 111.txt。

hello

用start命令開啟乙個不存在的檔案,由於檔案是不存在的,所以start命令執行失敗,這時用"&&"鏈結的命令」echo hello「沒有執行,而用」&「鏈結的執行了。

」&&「的這種特性,讓它成為了特殊的條件運算子。

4.執行符號前的命令失敗就執行符號後的命令

&&的否定操作就是||。

例如:複製** **如下:

c:\users\helloworld\desktop>start "" "111.txt" || echo hello

系統找不到檔案 111.txt。

hello

談談 Python 中的連線符( )

假設有下面一段 a 1 2,3 4 b 5 6,7 8,9 c 11 12,13 14,15 16,17 18,19 20 for item in a,b,c item 0 10 len item print a print b print c這段 的意思是,有三個列表,需要在長度不為 10 的列表...

巨集定義中的 連線符與 符

連線符與 符 連線符號由兩個井號組成,其功能是在帶引數的巨集定義中將兩個子串 token 聯接起來,從而形成乙個新的子串。但它不可以是第乙個或者最後乙個子串。所謂的子串 token 就是指編譯器能夠識別的最小語法單元。具體的定義在編譯原理裡有詳盡的解釋,但不知道也無所謂。同時值得注意的是 符是把傳遞...

巨集定義中的 連線符與 符

連線符與 符 連線符號由兩個井號組成,其功能是在帶引數的巨集定義中將兩個子串 token 聯接起來,從而形成乙個新的子串。但它不可以是第乙個或者最後乙個子串。所謂的子串 token 就是指編譯器能夠識別的最小語法單元。具體的定義在編譯原理裡有詳盡的解釋,但不知道也無所謂。同時值得注意的是 符是把傳遞...