引号
大多数在线批处理脚本都有很多引用问题。
示例和解决方案
例 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 语句等。但是,当一个用于包含空格或特殊字符的字符串时,使用引号通常是安全的。