【问题标题】:Find java PID using batch使用批处理查找java PID
【发布时间】:2012-12-11 08:42:02
【问题描述】:

我需要从 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。

【问题讨论】:

    标签: java windows batch-file pid


    【解决方案1】:

    您必须像 ^| 那样在 FOR 语句中转义管道,否则它会尝试将 FOR 语句的前半部分通过管道传输到第二个。

    这也是我找到 PID 的方式。

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

    【讨论】:

      【解决方案2】:

      您可以使用命令“tasklist”来显示 PID。

      【讨论】:

      • 我仍然需要解析这个响应。问题是我需要解析任务列表,但我不能
      【解决方案3】:

      正确的脚本

         "%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%
      

      【讨论】:

        猜你喜欢
        • 2021-04-15
        • 1970-01-01
        • 2017-12-28
        • 2018-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多