【问题标题】:WMIC Process List and then terminate?WMIC进程列表然后终止?
【发布时间】:2016-02-07 22:54:22
【问题描述】:

编辑 @aschipfl - 你的反应是完美的!答案如下。

历史.. 为什么要这样做? 99.9% 的情况下,我们能够简单地执行以下操作:

WMIC service where "name like 'tomcat%%'" CALL stopservice

而且效果很好。但是,曾经有一次我们会让 Tomcat 留在内存中而不是停止。所以我们必须终止它。我必须每月一次在大约 40 台服务器上添加我们供应商提供的“签名”文件,我必须 100% 确定我能够毫无问题地这样做。我们的大部分问题似乎都与 Tomcat7 和 JDK7 相关,并进行了一些内存调整。

我的批处理脚本中有以下内容,这两个都很好用。

WMIC Path win32_process WHERE "CommandLine Like '%%tomcat%%'" CALL Terminate
WMIC Path win32_process WHERE "CommandLine Like '%%java%%'" CALL Terminate

但是,我真的不希望终止 tomcat6w.exe 或 tomcat7w.exe。我真正想做的是终止tomcat?.exe,但不终止:tomcat?w.exe

当我尝试以下操作时,我刚刚杀死了我的服务器 - 啊!!

WMIC service where "name like 'tomcat%%'" get processid | WMIC Path win32_process WHERE "processid = processid" CALL Terminate

我认为我可以执行以下操作,但还不行:

for /F "skip=1" %%a in ('WMIC service where "name like 'tomcat%%'" get processid') do set pid=%%a
WMIC Path win32_process WHERE "processid = %pid%" CALL Terminate

但是,由于我正在使用 tomcat 做通配符,我认为它正在添加额外的回车..

Ref.. 我确实在这里找到了一些有趣的信息: http://www.dostips.com/forum/viewtopic.php?f=3&t=3815

希望这有意义吗?

回答

FOR /F "skip=1" %%a IN ('WMIC service where "name like 'tomcat%%'" get processid') DO (
FOR /F "delims=" %%b IN ("%%a") DO SET pid=%%b
)
WMIC Path win32_process WHERE "processid = %pid%" CALL Terminate
pause

谢谢!

【问题讨论】:

  • 额外的回车来自wmic 命令(与是否使用通配符无关); wmic 输出 Unicode 文本,for /F 转换为 ASCII 不完美;要摆脱它,只需环绕另一个 for /F 循环:for /F "skip=1" %%a in ('WMIC service where "name like 'tomcat%%'" get processid') do for /F "delims=" %%b in ("%%a") do set pid=%%b
  • 太棒了!这就是我一直在寻找的。​​span>
  • 太棒了!我只是将其发布为答案...

标签: windows batch-file service terminate wmic


【解决方案1】:

额外的回车来自wmic 命令(与您是否使用通配符无关)。 wmic 输出 Unicode 文本,for /F 转换为 ASCII 不完美。

要摆脱额外的回车,只需将另一个 for /F 循环:

for /F "skip=1" %%a in ('WMIC service where "name like 'tomcat%%'" get processid') do for /F "delims=" %%b in ("%%a") do set pid=%%b

所以变量pid包含纯进程ID值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多