不确定我哪里出错,但我希望最终输出只显示帽子不包含C:\ Windows \ System或C:\ Windows \ system32
@echo off
for /f "tokens=2" %%n in ('sc query state^= all ^| findstr SERVICE_NAME') do (
for /f "delims=: tokens=1*" %%r in (
'sc qc "%%~n" ^| findstr BINARY_PATH_NAME'
) do (
echo %%~s ^| findstr /V "C:\Windows\system32 C:\Windows\System32"
)
)
输出只列出循环中的所有命令,但不提供我的最终服务列表。
答案 0 :(得分:1)
尝试更改
echo %%~s ^| findstr /V "C:\Windows\system32 C:\Windows\System32"
到
echo %%~s | findstr /V /I "c:\windows\system32"
换句话说,添加不区分大小写的标志,并删除管道字符的转义。如果我将其保存为.cmd
文件,这对我有用。