用于检查某些窗口服务的“状态”的循环

时间:2011-10-07 11:44:27

标签: batch-file for-loop

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%

此代码仅显示spoolerdhcp。为什么不插件?我相信这两个问题都是相关的,但不确定如何。

对此的任何帮助都将受到高度赞赏。

1 个答案:

答案 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