假设我有一个服务列表,名称均以“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. 如何在不停止批处理的情况下停止当前正在运行的cmd进程?
- 4. 如何使用批处理命令在Windows 7上停止运行程序
- 5. .Net运行时错误停止服务;未处理的IOException
- 6. 在远程服务器上以Java运行批处理文件
- 7. 如何在远程服务器上运行批处理文件
- 8. 服务器中的处理程序和线程继续运行,而服务似乎已停止
- 9. 如何用批处理脚本停止正在运行的* .JAR文件?
- 10. 如何使用java停止正在运行的批处理文件
- 11. 批处理文件在第一条命令后停止运行
- 12. 如何停止在服务器上运行的程序?
- 13. 如何停止在批处理程序中启动的VBScript?
- 14. Windows服务来运行批处理文件,InstallUtil /我阻止服务启动?
- 15. 批处理程序在Windows 7中没有正确运行
- 16. 如何停止处理程序执行
- 17. 批处理文件完成后,批处理文件在“任务计划程序”下运行,并继续运行
- 18. 如何处理停止我的服务?
- 19. 停止并通过批处理或cmd文件启动服务?
- 20. 停止Windows服务是通过批处理文件
- 21. 从windows批处理文件启动和停止node.js服务器
- 22. 使用批处理文件停止服务器?
- 23. 如何停止ffmpeg并继续批处理运行
- 24. Socket.io - 服务器停止处理
- 25. NetPipeActivator服务停止处理调用
- 26. 如何停止正在运行的solr服务器?
- 27. 如何停止所有正在运行的流星服务器
- 28. 停止应用程序运行一段时间后Android服务停止
- 29. 程序停止运行?
- 30. 注销时在Windows服务中运行批处理文件
谢谢...我得到“节点”,当我运行上述。我将尝试更多的调试 – 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