引號

大多數線上批處理指令碼都有很多引用問題。

示例和解決方案

例 A

if %var%==abc echo Test

此程式碼有效 - 當%var%的內容不包含空格或其他特殊字元時。現在讓我們假設%var%包含 1 個空格。現在 cmd.exe 看到:

if  ==abc echo Test

這會導致失敗,因為 cmd.exe 不理解這種語法。

解決方案 A.

if "%var%"=="abc" echo Test

使用引號,cmd.exe 將整個%var%(包括空格和特殊字元)視為僅一個普通字串。然而,這不是最安全的比較方法。最安全的一個使用 echopipefindstr

例 B

cd C:\User\Spaced Name\Spaced FileName.txt

cd 只會將目錄更改為 C:\User\Spaced,因為 cd 只接受一個路徑引數。

解決方案 B.

只需在路徑周圍新增引號,問題就可以解決了。

cd "C:\User\Spaced Name\Spaced FileName.txt"

還有一些使用引號更好地工作的例子,例如 set /a 語句等。但是,當一個用於包含空格或特殊字元的字串時,使用引號通常是安全的。