Powershell命令在E​​lse语句中重新启动/重新加载脚本

我正在创build一个PowerShell脚本来修复或重新安装客户端远程基于用户input(下面的基本脚本示例):

$env:COMPUTERNAME = Read-Host 'Please enter hostname' $RepairReinstall = Read.Host ' 1: Repair Client 2: Re-install Client Answer' If (RepairReinstall -eq 1) { Write-Host " Repair Started" } If (RepairReinstall -eq 2) { Write-Host " Re-install Started" } Else { Write-Host " [WARNING] Please select whether you'd like to repair or re-install the client" } 

如何在Else {}语句中重新加载/重新启动脚本; 理想情况下,我只想从$ RepairReinstall提示符重新启动,而不是再次提示$ env:COMPUTERNAME值。

我已经通过超级用户,ServerFault和谷歌search,但无法find一个合适的命令来执行此操作。 任何帮助/build议表示赞赏。

你需要的是一个do { ... } while( ... )循环:

 $env:COMPUTERNAME = Read-Host 'Please enter hostname' Do { $RepairReinstall = Read.Host ' 1: Repair Client 2: Re-install Client Answer' If (RepairReinstall -eq 1) { Write-Host " Repair Started" break } If (RepairReinstall -eq 2) { Write-Host " Re-install Started" break } Else { Write-Host " [WARNING] Please select whether you'd like to repair or re-install the client" } } While ($true) 

这将循环你的程序,直到任何两个break语句被执行