假设我有一个服务列表,名称均以“MyServiceFactory - ”开头。并非所有的人都会开始,只有少数人会随着服务的使用而变化。我正在寻找帮助编写一个批处理程序,只停止正在运行的服务并启动这些服务(并非所有服务都不重新启动)。任何帮助表示赞赏批处理程序停止正在运行的服务
0
A
回答
1
这应该工作(或者至少给你一个开始):
@echo off
setlocal
if "%~1"=="" goto usage
set tmpFile=templist.txt
set tmpAnsi=templist_ansi.txt
wmic /locale:MS_409 service where "caption like '%~1' and state='Running'" get caption /format:csv >%tmpFile%
REM this is required to convert from Unicode(UCS-2) to ANSI
type %tmpFile%>%tmpAnsi%
Echo ---------------Stopping services----------------------
Echo.
for /f "tokens=2 skip=2 delims=," %%i in (%tmpAnsi%) do (
wmic /locale:MS_409 service where caption="%%i" call stopservice
)
Echo --------------Starting services-----------------------
Echo.
for /f "tokens=2 skip=2 delims=," %%i in (%tmpAnsi%) do (
wmic /locale:MS_409 service where caption="%%i" call startservice
)
goto end
:usage
Echo.
Echo Usage is:
Echo %~n0 pattern_to_check
Echo.
Echo Pattern:
Echo [ ] Any one character within the specified range ([a=f]) or set ([abcdef]).
Echo ^^ Any one character not within the range ([^a=f]) or set ([^abcdef].)
Echo %% Any string of 0 (zero) or more characters
Echo _ (underscore) Any one character. Any literal underscore
Echo used in the query string must be escaped by placing it inside []
Echo.
Echo If pattern contains spaces, it must be enclosed in double quotes
:end
假设你的名字你的批处理文件batch.bat,你会称它为batch.bat "MyServiceFactory -%"
。
2
您还可以尝试使用PowerShell。我有一些单行我用它来启动和停止我们的服务:
缺点是PowerShell命令不给你上什么是与服务发生像net start
做了状态,但你得喜欢简洁:)
相关问题
- 1. 停止正在运行的处理程序
- 2. 停止服务,运行批处理文件,然后启动服务
- 3. 停止正在运行的应用程序的Tomcat服务器
- 4. 批处理文件 - 除列出的服务外,正在停止服务
- 5. 运行应用程序时无法停止处理程序和服务
- 6. 服务正在运行后,应用程序停止
- 7. 注册多个处理程序正在运行的服务器
- 8. 如何在不停止批处理的情况下停止当前正在运行的cmd进程?
- 9. Windows服务运行但在两天后停止处理
- 10. 如何使用批处理命令在Windows 7上停止运行程序
- 11. .Net运行时错误停止服务;未处理的IOException
- 12. 在远程服务器上以Java运行批处理文件
- 13. 如何在远程服务器上运行批处理文件
- 14. 服务器中的处理程序和线程继续运行,而服务似乎已停止
- 15. 如何使用java停止正在运行的批处理文件
- 16. 如何用批处理脚本停止正在运行的* .JAR文件?
- 17. 批处理文件 - 停止在运行中
- 18. 批处理文件在第一条命令后停止运行
- 19. 如何停止在服务器上运行的程序?
- 20. 批处理文件:停止进程
- 21. 如何停止在批处理程序中启动的VBScript?
- 22. Windows服务来运行批处理文件,InstallUtil /我阻止服务启动?
- 23. java api运行windows批处理程序?
- 24. 批处理程序在Windows 7中没有正确运行
- 25. 停止处理程序()。postDelay
- 26. android:停止处理程序
- 27. 如何停止处理程序执行
- 28. 批处理文件完成后,批处理文件在“任务计划程序”下运行,并继续运行
- 29. 运行在指定时间停止进程的批处理文件
- 30. 如何处理停止我的服务?
谢谢...我得到“节点”,当我运行上述。我将尝试更多的调试 – G33kKahuna 2012-02-16 03:37:48
这意味着它无法找到任何正在运行的服务和给定的标题(在服务工具中看到的描述性名称)。我认为这是你的名字,因为它包含空间,但也有内部服务名称。最好运行'wmic'。在wmic提示符下,exec'service获取名称,标题,显示名称,状态 - - 这将显示所有服务,它们的标题,显示名称和状态。直接运行批次中的第一个查询,直到获得您想要的结果,并根据需要更改,然后调整批次。 – wmz 2012-02-16 12:28:57
@ G33kKahuna对不起忘了解决以前给你...看看,它应该帮助 – wmz 2012-02-16 13:57:50