August 16, 2012

How to do a PAUSE

In the good old days, with cmd.exe batchs you can easily add a PAUSE in your script to allow you press a key to continue.

In Powershell you have to use the ReadKey() method. The only bug is that you can’t use ReadKey() if your not in the console. That could be a problem if you use PowerGUI or PowerShellISE to develop and run your scripts.

Here’s a little function that will do the trick :

# Emulation of PAUSE command (cmd)
# Author : Jeffrey Snover [MSFT]
function Pause ([string]$Message="[Pause] Press Enter key to continue ...")
	if (((Get-Host).Name) -eq 'ConsoleHost') {
		Write-Host -NoNewLine $Message
		$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
		Write-Host ""
	Else {
	Read-Host -Prompt $message

Thanks to Jeffrey Snover for this code.

No comments:

Post a Comment