通过 bat 文件执行时文件路径中的转义空格



我正在尝试启动一个java进程,使用bat文件向其传递多个参数。但问题是 cmd 在使用时只会跳跃并且不显示任何内容:

start cmd/C 

所以让它

start cmd/K 

给出一个弹出的CMD,其中显示此错误

"C:\New"不被识别为内部或外部命令、可操作程序或批处理文件。

为了测试重现问题,您可以通过以下示例启动 Java 进程。

我已经搜索了一个解决方案,但唯一与问题相似的是使用 set 然后使用参数。设置"变量=内容">

echo 正确打印包含许多空格的文件夹,例如:"C:\New Folder and Spaces">
代码如下:

SET "currDir=%~dp0" 
echo %currDir% 
start cmd /K "%currDir%"..jvmjrebinjava.exe -version

如何传递 ~dp0 值,即使它中有空格而不会收到上述错误?如果我应该在启动命令中多次使用它怎么办,例如:

start cmd /K "%currDir%"..jvmjrebinjava.exe -version -Djava.awt.headless=true %JAVA_OPTIONS% -jar "%~dp0MyJar.jar" -home "%~dp0.." %*
希望存在

短文件和文件夹名称怎么样,因为它们从不包含空格?尝试:

set currDir=%~sdp0

(欲了解更多信息,请访问ss64!

干杯尼古拉

最新更新