我不确定是否只有一种更有效的方法可以做到这一点,或者如果组合一个while和for循环甚至可以工作,但我怎么能解决这个问题才能运行该函数for循环中的每个项都返回true?
$In = @()
While ($In[-1] -ne 'done') {$In += @(Read-Host 'Prompt')}
do {
for($i=0;$i-le $In.length-2;$i++) {function($In[$i])}
}
while (for($j=0;$j-le $In.length-2;$j++)
{Get-Service ($In[$j]) | $_.status} -eq "Running")
使用$ In各种服务的名称数组,当任何一个服务返回状态时,do-while应该重新启动数组中的每个服务" Stopped"。
答案 0 :(得分:0)
我这样做:
$In = @()
do
{
$c = (Read-Host 'Enter service name')
if ($c) { $in+=$c}
}
while ($c) #just a void input to end
$in | where-object {(Get-Service -name $_ ).Status -match 'Stopped'} | Restart-Service
答案 1 :(得分:0)
也许OT,但是如果你在那个系统上有V3,我会这样做:
Get-Service | sort Status | Out-GridView -Title 'Select services to restart' -OutputMode Multiple | Restart-Service
答案 2 :(得分:0)
while(($ans = Read-Host 'Give me something') -ne 'done'){
Restart-Service $ans
}