我需要从 Windows 批处理控制台知道 java 进程 PID。
@echo off
set p=%CD%
FOR /F "tokens=1" %%A IN ('"%JAVA_HOME%/bin/jps.exe -v"\|find "%p%"') DO SET str=%%A
echo str = "%str%"
Java 进程唯一标识符是它执行的路径。
脚本执行jps,返回所有java进程信息,例如
9376 Jps -Denv.class.path=D:\tools\timesten\lib\ttjdbc6.jar; -Dapplication.home=C:\Program Files\Java\jdk1.6.0_24 -Xms8m
3856 -Dexe4j.semaphoreName=c:_program files (x86)_jetbrains_intellij idea community edition 12.0.1_bin_idea.exe -Dexe4j.moduleName=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12....etc
批次说:
|此时却出乎意料。
请您说一下,如何正确提取PID。
你必须像这样逃离管道^|
在一个FOR
语句,否则它会尝试通过管道传输前半部分FOR
声明进入第二个。
这也是我找到 PID 的方法。
for /f "tokens=2" %%a in ('tasklist ^| find "jps.exe") do set javapid=%%a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)