引號
大多數線上批處理指令碼都有很多引用問題。
示例和解決方案
例 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%
(包括空格和特殊字元)視為僅一個普通字串。然而,這不是最安全的比較方法。最安全的一個使用 echo
,pipe
和 findstr
。
例 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
語句等。但是,當一個用於包含空格或特殊字元的字串時,使用引號通常是安全的。