Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 收集每项服务';显示名称和状态_Windows_Batch File_Service - Fatal编程技术网

Windows 收集每项服务';显示名称和状态

Windows 收集每项服务';显示名称和状态,windows,batch-file,service,Windows,Batch File,Service,我想获取带有显示名称和状态的服务列表 这就是我尝试过的: 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) 但这只返回有限的服务,如磁盘等。请尝试在批处理文件中直接从powershell获取帮助,例如(另存为.bat并运行它)。在本例中

我想获取带有显示名称和状态的服务列表

这就是我尝试过的:

    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)

但这只返回有限的服务,如磁盘等。

请尝试在批处理文件中直接从powershell获取帮助,例如(另存为.bat并运行它)。在本例中,我将其键入屏幕,并为您提供所有服务,仅运行,仅停止,但您基本上可以对该txt文件的内容执行您想要的操作(使用循环搜索它,将部分保存到变量,等等)


这是内置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服务获取显示名称、名称、状态””
)Do@For/F“Delims=“%%B In(“%%A”)Do@Echo(%%B
@停顿

如果您在批处理文件中使用此代码,您需要将百分比增加一倍。是的,我在批处理文件中使用了%%…感谢Compo..它像一个切片一样工作…只是我需要在我的环境变量中添加wmic并完成…感谢Com..感谢您的回复Raphael,但它无法识别powershell在我的错误和其他系统中的某处tem它工作顺利!!!!!…感谢上面的解决方案更好,因为它不依赖powershell:)很高兴我能提供一个替代方案。
@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