我正在尝试创建一个bat文件,以便从命令提示符运行testng。问题是我的路径包含许多名称中包含空格的文件夹。我按照How to write a full path in a batch file having a folder name with 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
但每次都会收到错误“错误:找不到或加载主类org.testng.TestNG”。在上面的代码中,当我回显Projectpath时,我得到的是这样的东西。
"C:\Test\ABC Online" (Double quotes)
如果我将文件夹名称更改为ABC_Online并运行不带双引号的相同命令,则它可以正常工作。
我错过了什么。请建议。
答案 0 :(得分:2)
在set
命令行中,引号是值的一部分,命令行中有尾随空格:
set ProjectPath="C:\Test\ABC Online"
SPACE SPACE SPACE 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"