循环分界的批处理

时间:2015-05-20 23:04:52

标签: batch-file

由于Windows cmd语法非常复杂且不必要地复杂且难以阅读,因此我很难找到正确的键入方法。基本上我只是想创建一个运行的for循环:

  

sc查询| findstr SERVICE_NAME

然后从输出中获取服务并运行:

  

sc sdshow" SERVICE_NAME"

以下是我一直在尝试的事情:

  

for / f" tokens = 2 delims =" %a IN(" sc query | findstr SERVICE_NAME")DO sc sdshow%a

但显然分隔符是在我输入的命令中选择第二个标记,而不是输出。我认为它类似于:" cut -d" " -f2,"但显然不是。甚至还有一种方法可以在Windows cmd语法的可怕怪物中做到这一点吗?

1 个答案:

答案 0 :(得分:2)

对于它的价值,你真的关闭。在批处理中,您使用单引号(for)操作具有'循环的命令的输出。此外,您需要使用^转义命令内部的管道。

在批处理文件中,您需要使用两个%符号调用for循环变量(如果您在命令行中键入它,则只需要一个)。

for /f "tokens=2 delims= " %%a in ('sc query ^| findstr "SERVICE_NAME"') do sc sdshow %%a