通配符与服务停止/启动

3
我知道我们可以使用VBS、PowerShell等编程语言来实现这个功能。然而,我们不想使用其他编程语言,只希望使用batch脚本。
已经找到了以下解决方案:
TASKKILL /F /IM "tomcat*"

这将强制终止/停止任何持久化的Tomcat实例。此外,这将覆盖Tomcat6.exe、Tomcat6_1.exe、tomcat7.exe等版本。

我的问题是..我们知道可以执行NET START Tomcat6,例如..是否有可能执行:

NET START Tomcat*

是的,如果您在服务器上有多个Tomcat实例,这将失败,因为您必须遍历实例列表。然而,我之所以考虑这样做,是因为我们每月都要运行一个脚本,我正在尝试使批处理脚本更具可移植性。
谢谢。

请参见http://superuser.com/questions/586751/wildcard-services-restart。 - Tony Hinkle
2个回答

6
你可以使用带通配符的WMIC命令来实现这个功能。
wmic service where "name like 'tomcat%%%'" call stopservice

请在Super User网站上查看通配符服务重启


个人而言,我喜欢一行代码! - Leptonator

1
@echo off
set "service=tomcat"
for /f "tokens=2 delims=: " %%# in ('sc query type^= service^|find /i "SERVICE_NAME:"^|findstr /i /b /c:"SERVICE_NAME: %service%"') do (
    set "nservice=%%#"
)
echo %nservice%
net start %nservice%

this ?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接