引号

大多数在线批处理脚本都有很多引用问题。

示例和解决方案

例 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 语句等。但是,当一个用于包含空格或特殊字符的字符串时,使用引号通常是安全的。