for %%f in ('wmic service where 'name like 'Steam Client%%'") do set Service=%%f
echo %Service%
我做错了什么?
答案 0 :(得分:2)
for /F "tokens=*" %%f in ('wmic service where "name like "Steam%%"" get Name ^| findstr /V /R "^$"') do set Service=%%f
echo %SERVICE%
<强>输出强>
Steam Client Service
代码中的错误:
/F
开关
get
子句findstr
答案 1 :(得分:0)
不是('wmic service where 'name like 'Steam Client%%'")
中的最后一个括号应该是'not'吗?在任何情况下,我都没有尝试使用wmic服务,只有wmic win32_localtime看起来像这样:FOR /F %%F IN ('wmic path win32_localtime get dayofweek^|Findstr [0-6]') DO SET DOW=%%F
for /f %%f in ('wmic service where name like "Steam Client%%"') do set Service=%%f
echo %Service%
有关WMIC查询的任何帮助this可能有帮助
希望这有帮助。
答案 2 :(得分:0)
我就是这样做的。
第二个for循环从输出中删除一些有问题的字符,与FindStr
示例的方式非常相似,只是更快。然后我实现了一个Call
去除尾部空格,这些空格填充了返回的Get
字符串的结尾。
@Echo Off
For /F "Skip=1 Delims=" %%A In (
'"WMIC Service Where (Name Like 'Steam%%') Get Name"'
) Do For /F "Delims=" %%B In ("%%A") Do Call :Sub %%B
Echo("%Service%"
Timeout -1
GoTo :EOF
:Sub
Set "Service=%*"
GoTo :EOF
以上代码完全未经测试,因为我正在使用Android设备。