これを行うためのより効率的な方法があるかどうか、または 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 は、サービスのいずれかが「停止」ステータスを返したときに、配列内の各サービスを再起動することになっています。