services.txt
包含: - Plugplay
后台处理程序
DHCP
我想检查文件services.txt
中指定的某些服务的状态。我正在使用for循环。
@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof
:chkservice
sc query %a%
我得到的输出相当于命令sc query
的三倍(我猜),而不是获取三个指定服务的输出。
为了进行调试,我尝试检查变量a
是否正确获取值并尝试使用此版本的代码: -
@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof
:chkservice
@echo on
echo %a%
此代码仅显示spooler
和dhcp
。为什么不插件?我相信这两个问题都是相关的,但不确定如何。
对此的任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
如果你调用一个函数,你的参数在%{1},%2,...%n不在%a%
。
for循环的参数在该循环之外几乎是不可见的。
所以你的代码应该是
@echo off
for /f %%a IN ('type services.txt') do call :chkservice %%a
goto :eof
:chkservice
echo %1
goto :eof