Introduction To the Windows PowerShell Backtick Operator `
It has to be said that if you blink, then you will miss the ` backtick
operator. However, it would be a pity if you did, because backtick allows you to word-wrap PowerShell commands.
Incidentally, some people call this the grave key.
When you write code for any scripting language there comes a time when you want the command to wrap onto the next line. PowerShell, along with most languages, regards the end-of-line character as
terminating that command. Consequently, a new line means the start of a new command. Thus we have established the need for a command to tell PowerShell that this command wraps to the next line -
enter the tiny backtick `.
On my
UK keyboard the backtick is on the
top row next to '1' key. It's the key above the Tab and below the Esc key. My key has three symbols, ` ¬ ¦ All you need to get the backtick is press the key on its own
without holding down the shift or the Alt key.
Any doubt about which is the backtick key, hold down the Alt and press
these four numbers on the number pad: 0096, only now let go of the Alt key.
As you can see, unless I use the smallest font, it won't all fit on one line, consequently we need to tell PowerShell to word-wrap. More importantly, most script editors issue an end-of-line
marker before they reach 86 characters.
Challenge: There is a ` backtick after ServiceType, but can you spot a second backtick?
There is a really nasty problem with the PowerShell backtick, and
that is if you inadvertently add whitespace after the ` and before the
actual end of the line.
# Backtick ` Problem white space after the backtick. Get-Service * |Sort-Object ServiceType ` | Format-Table name, status, ` ServiceType, CanStop, -auto
Example of the error message
An empty pipe element is not allowed. At line:3 char:1
Clarification of the problem. Get PowerShell word-wrap working properly
with the backtick. Then to see the problem press the spacebar after the
backtick and try again. You should get an error similar to the
message above.
# Correct no whitespace Get-Service * | Sort-Object ServiceType `
# Problem whitespace (x6 to exaggerate) Get-Service * | Sort-Object ServiceType `
# Representation of the problem whitespace with a dot Get-Service * | Sort-Object ServiceType `........
Guy
Recommends: Free WMI Monitor for PowerShell
Windows Management Instrumentation (WMI) is one of the hidden
treasures of Microsoft's operating systems. Fortunately, SolarWinds
have created a
Free WMI Monitor so that you can discover these gems of performance
information, and thus improve your PowerShell scripts.
Take the guess work out of which WMI counters to use when scripting the
operating system, Active Directory, or Exchange Server. Give this WMI monitor a
try - it's free.
It is important to distinguish the primary use of the backtick, on its own `, and its secondary use as an escape character, for example, backtick with
`n or `t . Let me explain with an example.
2a) Write-host "Heading Sub Heading"
# PowerShell New Line Problem Write-host "Heading Sub Heading"
Problem: An undesired result because the text is all on the same line.
Heading Sub Heading
Solution: Add the crucial `n
2b) Write-host "Heading `nSub Heading"
# PowerShell New Line solution Write-host "Heading `nSub
Heading"
Result: Desired result achieved:
Heading Sub Heading
Note 2: Remember that the escape family `n, `r and `t work within "text" rather than within command statements.
2c Backtick instead of "Quotes"
Take a directory such as "Program Files". I would script the
path with those speech marks, however it's possible to use no quotation
marks and backtick instead.
# PowerShell Backtick for Space Clear-Host Get-ChildItem
C:\Program` Files\
Guy would use Get-ChildItem "C:\Program Files\" instead of a
backtick to escape the whitespace.
Guy Recommends: A Free Trial of the Network Performance Monitor
(NPM)
SolarWinds'
Network Performance Monitor
will help you discover what's happening on your network. This
utility will also guide you through troubleshooting; the dashboard will
indicate whether the root cause is a broken link, faulty equipment or
resource overload.
What I like best is the way NPM suggests solutions to network
problems. Its also has the ability to monitor the health of individual VMware
virtual machines. If you are interested in troubleshooting, and creating
network maps, then I recommend that you try NPM now.
Take the time to seek out the `backtick key. One day this tiny
symbol will help PowerShell to word-wrap your commands. There may also be work for the rest of the
PowerShell backtick family, for example `t to align an output
column with a tab.
If you like this page then please share it with your friends
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.
Windows Management Instrumentation (WMI) is
most useful for PowerShell scripting.
SolarWinds
have produced this
Free WMI Monitor to take the guess work out of which
WMI counters to use for applications like Microsoft Active Directory,
SQL or Exchange Server.