Java Wmic循环的进程调用不';不要启动命令

Java Wmic循环的进程调用不';不要启动命令,java,batch-file,wmic,Java,Batch File,Wmic,我试图检索通过批处理文件启动的Java应用程序的ProcessID。问题是应用程序无法启动 我的代码: set cmd=java -jar XXXXXXX.jar XXXXXX.yml for /f "tokens=2 delims==; " %%a in (' wmic process call create "%cmd%" ^| find "ProcessId" ') do set PID=%%a start cmd /k echo %pid% PAUSE 批处理文件对空格非常挑剔 更改此

我试图检索通过批处理文件启动的Java应用程序的ProcessID。问题是应用程序无法启动

我的代码:

set cmd=java -jar XXXXXXX.jar XXXXXX.yml
for /f "tokens=2 delims==; " %%a in (' wmic process call create "%cmd%" ^| find "ProcessId" ') do set PID=%%a
start cmd /k echo %pid%
PAUSE

批处理文件对空格非常挑剔

更改此项:

set cmd = java -jar XXXXXXX.jar XXXXXX.yml
为此:

set cmd=java -jar XXXXXXX.jar XXXXXX.yml
这项工作:

set cmd=notepad

for /f "tokens=2 delims==; " %%a in (' wmic process call create "%cmd%" ^| find "ProcessId" ') do set PID=%%a

start cmd /k echo %pid%

PAUSE
您的jar文件可能有问题,或者java不在您的路径上。请尝试在命令提示符下直接运行命令,以查看其是否有效:

c:\>java -jar XXXXXXX.jar XXXXXX.yml
还要确保在cmd中使用jar文件的完整路径,否则该路径将与系统文件夹相关:

set cmd=java -jar c:\yourpath\XXXXXXX.jar XXXXXX.yml

我的批处理文件中已经有了,我在这里输入答案时输入了这些空格。我刚修改了那个打字错误。谢谢你的回答。@MThi,它现在工作了吗?如果您将“java-jar XXXXXXX.jar XXXXXX.yml”更改为“notepad”,它是否按照您的预期工作?如果您只是在命令提示符下键入java-jar XXXXXXX.jar XXXXXX.yml,这行吗?对我来说,它在记事本上也行。单独运行我的java应用程序命令也可以。但是带有java应用程序的wmic仍然没有启动java应用程序。