【发布时间】:2015-06-19 15:15:33
【问题描述】:
有没有办法只知道服务的名称就可以通过批处理脚本中的命令获取 Windows 服务的 PID?
【问题讨论】:
-
不,这不是我想要的。该代码将通过 .exe 文件而不是服务名称找到 PID。
标签: windows batch-file service cmd pid
有没有办法只知道服务的名称就可以通过批处理脚本中的命令获取 Windows 服务的 PID?
【问题讨论】:
标签: windows batch-file service cmd pid
试试下面的代码:
FOR /F "tokens=3" %%A IN ('sc queryex %serviceName% ^| findstr PID') DO (SET pid=%%A)
如果“!pid!” NEQ "0" (
taskkill /F /PID !pid!
)
【讨论】:
for /f "tokens=3" %A in ('sc queryex w32time ^| find "PID"') do wmic service where "ProcessID=%A" get caption,name,processid /value。
tasklist /svc /fi "services eq %serviceName%" /fo list 之类的东西来获取 PID 以及进程托管的所有服务的列表。
taskkill /F /PID !pid!应该是taskkill /F /PID %pid%
只做taskkill /f /fi "SERVICES eq <service_short_name>"就容易多了
【讨论】:
@echo off
for /f "tokens= delims=" %%# in ('
wmic service where "name='Service'" get ProcessId /format:value
') do (
for /f "tokens=* delims=" %%$ in ("%%#") do set "%%$"
)
taskkill /pid %ProcessId% /f
【讨论】: