【问题标题】:Looping through each item in a single output, using Powershell使用 Powershell 在单个输出中循​​环遍历每个项目
【发布时间】:2013-07-19 12:12:00
【问题描述】:

目前我正在尝试编写一个脚本来获取我计算机上所有服务的列表,然后尝试使用该输出中的每个服务名称来运行“sc.exe qfailure [service]”。

但是,我不确定为什么我的输出会一遍又一遍地运行一个服务的名称。这是我的代码。

另外,我试图让任何服务配置为在其恢复选项中运行程序,它应该能够打印出服务名称。我只知道如何匹配“运行过程”。如何匹配服务名称?

我的部分代码如下。

    $services = get-service | select -expand name;
    Write-Host $services
    $output = $services | ForEach {sc.exe qfailure $services in};

将不胜感激任何帮助。非常感谢!

【问题讨论】:

    标签: loops powershell match output


    【解决方案1】:

    当你将一个对象通过管道传递给 foreach 时,该对象中的每个对象都可以由 $_ 变量表示

    $output = $services | ForEach {sc.exe qfailure $_ in};
    

    【讨论】:

    • 谢谢!请问$_在定义中代表什么?另外,我如何才能开始获取已配置“运行程序”以打印其名称的服务?
    • @J.Lim $_ 是一个默认变量,表示从管道读取的当前对象。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    相关资源
    最近更新 更多