我想獲取顯示名稱及其狀態的服務列表。收集每個服務的顯示名稱和狀態
這是我曾嘗試:
for /f "tokens=2" %s in ('SC query state^= all ^| find "DISPLAY_NAME"') do @(for /f "tokens=4" %t in ('SC query %s ^| find "STATE"') do @echo %s is %t)
但這僅返回有限的服務,如磁盤等
我想獲取顯示名稱及其狀態的服務列表。收集每個服務的顯示名稱和狀態
這是我曾嘗試:
for /f "tokens=2" %s in ('SC query state^= all ^| find "DISPLAY_NAME"') do @(for /f "tokens=4" %t in ('SC query %s ^| find "STATE"') do @echo %s is %t)
但這僅返回有限的服務,如磁盤等
這是內置WMI命令行可執行文件WMIC.exe
的完美任務。
從CMD.EXE提示:
For /F "Skip=1 Delims=" %A In ('"WMIC Service Get DisplayName, Name, State"') Do @For /F "Delims=" %B In ("%A") Do @Echo(%B
從一個批處理文件:
@For /F "Skip=1 Delims=" %%A In ('"WMIC Service Get DisplayName, Name, State"'
) Do @For /F "Delims=" %%B In ("%%A") Do @Echo(%%B
@Pause
感謝Compo ..它像一個切片一樣......只需要在我的環境變量中添加wmic並完成......感謝Com .... – Anonymous
嘗試從PowerShell中獲取幫助,直接在批處理文件中,這樣,例如(保存爲.bat並運行它)。在這個例子中,我將它輸入到屏幕上,併爲您提供所有服務,僅運行和停止,但基本上可以對該txt文件的內容進行基本操作(使用循環搜索,將一部分保存到變量,等等。)。
@echo off&cls
pushd %~dp0
echo.
echo List ALL services
pause
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "powershell Get-Service | Out-File services.txt"
type services.txt
echo.
echo List services that are RUNNING only
pause
find "Running" services.txt
echo.
echo List services that are STOPPED only
pause
find "Stopped" services.txt
pause
:cleanup
del /f services.txt
如果您使用的是批處理文件的代碼,你需要百分號 – npocmaka
是啊,我已經用加倍%%在批處理文件... – Anonymous