如何在PowerShell中批量执行命令并添加暂停功能?
PowerShell批量执行命令并添加暂停功能
定时暂停(固定时长等待)
用Start-Sleep可以实现固定时间的暂停,把它放在需要等待的位置就行,比如命令之间或者脚本末尾:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass Start-Sleep -Seconds 5 # 暂停5秒再执行下一条 ipconfig /registerdns Start-Sleep -Seconds 3 # 注册DNS后暂停3秒 ipconfig /flushdns Start-Sleep -Seconds 10 # 所有命令完成后暂停10秒再退出
手动触发暂停(按任意键/回车继续)
如果需要等你确认执行结果再继续,用下面两种交互方式更实用:
按回车键继续
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass Read-Host "按Enter键开始注册DNS..." ipconfig /registerdns Read-Host "按Enter键开始刷新DNS..." ipconfig /flushdns Read-Host "操作完成,按Enter键退出"
按任意键继续
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass Write-Host "按任意键开始注册DNS..." $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null ipconfig /registerdns Write-Host "按任意键开始刷新DNS..." $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null ipconfig /flushdns Write-Host "操作完成,按任意键退出..." $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null
关于Start-Sleep无效的可能原因
你之前用Start-Sleep没效果,大概率是位置放错了——比如把它放在了所有命令的最前面,或者暂停时长太短(比如1秒)没察觉。只要把它放在需要等待的两个命令之间,或者脚本最后,就能正常生效。
内容的提问来源于stack exchange,提问作者Kourosh
相关产品推荐
相关产品推荐

