2

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を正しく抽出する方法を教えてください。

4

3 に答える 3

1

^|ステートメント内でこのようにパイプをエスケープする必要がありますFOR。そうしないと、ステートメントの前半を後半にパイプしようとしFORます。

また、これは私がPIDを見つける方法です。

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

于 2012-12-26T21:22:49.143 に答える
0

show PID のコマンド「tasklist」を使用できます。

于 2012-12-25T10:06:40.857 に答える