Advanced Windows PowerShell Scripting Video Training

Advanced Windows PowerShell Scripting Video Training
Advanced Windows PowerShell Scripting Video Training

Tuesday, November 24, 2009

Is there an ESCAPE key in Powershell?

Yes there is. In other programming languages, you may have encountered the backslash ( \ ) and the start of an escape sequence. It is a little different in PowerShell. We use the backtick character ( ` ). It is usually found on the key to the left of the number ( 1 ) key and shares the key with the tilde ( ~ ). Here are a few examples

Character Escape Code

Null `0

Alert `a

Backspace `b

Form Feed `f

New Line `n

Carriage Return `r

Tab `t

Vertical quote `v

Below is a script the will demonstrate a few of these.

# ======================================

# Script Name: EscapeCodeDemo.PS1

# Author: Jason A.Yoder, MCT

# Company: MCTExpert, Inc.

# Website: www.MCTExpert.com

# Blog: www.MCTExpert.blogspot.com

# Version: 1.0

# Created: September 14, 2009

# Purpose: To demonstrate the different

# escape sequences in PowerShell.

# ======================================

# ======================================

# Script Body

# --------------------------------------

Clear-Host

Write-Host " Each of the following" `

"lines will demonstrate a different" `

"Escape Code"

Write-Host " "

Write-Host "Demonstration of TAB and " `

Write-Host "Form Feed"

Write-host "Name `t IPAddress `t Location `n"

Write-host "Apple `t 1.1.1.1 `t Indianapolis" `n

Write-Host "Orange `t 2.2.2.2 `t Tampa"

Write-host "Banana `t 3.3.3.3 `t Ancorage"

Write-host "Pear `t 4.4.4.4 `t London `f"

Write-host "Peach `t 5.5.5.5 `t Paris"

# ======================================

# End of Script Body

# ======================================


Should you need to use the backtick for something else, I suggest you read the following article from Lee Desmond

http://www.leedesmond.com/weblog/?p=35

3 comments:

Anonymous said...

Do you know how to detect when the user presses the Esc key on their keyboard using the following?

$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

Anonymous said...

Nevermind, I found it. This is it:

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
if ($x -eq [char]27) {Write-host "esc was pressed"}

Anonymous said...

Whoops... actually, this works much better:

if ($x.VirtualKeyCode -eq 27) {write-host "esc was pressed"}