PowerShell 提示继续执行代码

PowerShell 提示继续执行代码

我有一个用来自动化的脚本微软过程,最后阶段继续删除所有旧的/不必要的文件/对象。

我想在清理阶段之前提示“按‘Enter’继续删除或按任何其他键停止”,以便人们可以选择不运行它。

我当前在脚本末尾的代码如下:

Get-WsusServer 10.1.1.25 -PortNumber 8530 | Get-WsusUpdate -Classification All -Approval Unapproved -Status FailedOrNeeded | Approve-WsusUpdate -Action Install -Target $ComputerTarget -Verbose

Write-Host "Updates have been approved!"
Write-Host "Preparing to clean WSUS Server of obsolete computers, updates, and content files."

#Part2 - WSUS Server Cleanup

##Run Cleanup Command
Get-WsusServer $WSUS_Server -PortNumber $PortNumber | Invoke-WsusServerCleanup -CleanupObsoleteComputers -CleanupObsoleteUpdates -CleanupUnneededContentFiles

在 #Part2 之前,我希望得到提示‘按 Enter 继续或按任何其他键中止’

有没有简单的方法可以做到这一点?

我所看到的一切似乎都涉及将整个脚本嵌套在代码块中,而我不想这样做。=/

答案1

另一个简单的解决方案是使用:

Read-Host -Prompt "Press any key to continue or CTRL+C to quit" | Out-Null

我相信这是目前接受的答案的更好的解决方案,因为需要在键盘上按回车键。除非该 UI 元素处于焦点中,否则我不认为按回车键会接受 UI 提示。

答案2

您可以使用写入警告选项。相当简洁:

Write-Warning "This is only a test warning." -WarningAction Inquire
WARNING: This is only a test warning.
Confirm
Continue with this operation?
 [Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

答案3

只需将 -confirm 添加到 Invoke-WsusServerCleanup 命令即可。它是内置的。

答案4

无论您希望 PowerShell 停留在哪个步骤,请写入Pause您的代码。PowerShell 将停留在“按 Enter 继续...:”直到您点击Enter或关闭 shell/伊势

相关内容