假設我有一個服務列表,名稱均以「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