双引号不适用于从命令提示符调用带空格的文件夹

Double quotes is not working for calling a folder with spaces from Command Prompt

我正在尝试从命令提示符创建一个 bat 文件到 运行 testng。问题是我的路径包含许多名称中带有 space 的文件夹。我按照 How to write a full path in a batch file having a folder name with space? 中提到的步骤并为名称中带有 space 的文件夹添加了双引号,但问题是应用程序也在考虑带引号的文件夹名称,因此无法找到给定的文件夹.

这是我的命令。

set ProjectPath="C:\Test\ABC Online"    
echo %ProjectPath%
set classpath=%ProjectPath%\bin;%ProjectPath%\Framework Jar Files\*
echo %classpath%
java org.testng.TestNG %ProjectPath%\testng.xml

但每次都会出错 "Error: Could not find or load main class org.testng.TestNG"。在上面的代码中,当我回显 Projectpath 时,我得到了这样的结果。

 "C:\Test\ABC Online" (Double quotes)

如果我将文件夹名称更改为 ABC_Online 和 运行 不带双引号的相同命令,它工作得很好。

我是不是漏掉了什么。请提出建议。

在您的 set 命令行中,引号是值的一部分,并且在您的命令行中有尾随空格:

set ProjectPath="C:\Test\ABC Online"SPACESPACESPACE SPACE

所以命令行 java org.testng.TestNG "%ProjectPath%\testng.xml" 扩展为:

java org.testng.TestNG "C:\Test\ABC Online"    \testng.xml

使用以下语法,使空格和引号不会成为变量值的一部分:

set "ProjectPath=C:\Test\ABC Online"

以后使用该值时,像这样加上引号:

java org.testng.TestNG "%ProjectPath%\testng.xml"