【发布时间】:2017-03-09 23:55:57
【问题描述】:
我正在尝试查找文件是否存在,然后在命令提示符下打印出如下目录:
C:\> if exist "C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (echo C:\Program Files(x86)\Microsoft Visual Studio 14.0\)
这失败并出现以下错误:
\Microsoft was unexpected at this time.
如果我将命令重写为
C:\> if exist "C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (echo "C:\Program Files(x86)\Microsoft Visual Studio 14.0\")
打印出来:
"C:\Program Files(x86)\Microsoft Visual Studio 14.0\"
我利用了这个命令的输出,它周围的引号引起了一些问题。有什么方法可以在不添加引号的情况下回显这个?
【问题讨论】:
-
if语句中没有引号,或者根本没有引号?因为使用包含空格的路径进行操作需要引号,但如果您关心美观,可以使用变量。 -
if 语句没问题。我说的只是回声。当我从 echo 读取输出并在其他地方使用它时。所以我必须在使用之前手动剥离这些,并且想知道它是否可以在命令本身中完成
-
问题是
echo部分中的括号,(x86)中的结束)被认为是echo前面的(的对应;所以要么删除整个echo命令行周围的(/),或者像^(x86^)或(x86^)一样转义(x86)中的括号... -
Aaah...我假设如果存在
则必须遵循 ()。删除括号工作。谢谢 -
如果要构建包含多个条件命令的多行块,或者要使用
else子句,则需要括号;对于if后面的单个命令,它们不是必需的...
标签: batch-file cmd quotes