2012-12-25 46 views
1

我需要從Windows批處理控制檯中知道java進程PID。使用批處理找到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進程唯一標識符是執行它的路徑。 腳本執行太平紳士,返回所有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。

回答

0

正確的腳本

"%JAVA_HOME%/bin/jps.exe" -v>temp.txt 
    for /f "tokens=1" %%f in ('find "%CD%" "temp.txt"') do set str=%%f 
    echo str=%str% 
0

您可以通過用戶命令「任務列表」作秀PID。

+0

我還是要分析這種反應。問題是我需要解析tasklist,但我不能 – dmreshet

+1

對不起。我不能幫你。 – Tube

1

你要逃避這樣一個^|聲明FOR內的管道,否則它會嘗試管FOR聲明上半年進入第二。

這也是我如何找到一個PID。

for /f "tokens=2" %%a in ('tasklist ^| find "jps.exe") do set javapid=%%a