Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


May 2008

PowerShell 101, Lesson 4

How to properly use quotes when working with strings
RSS
Subscribe to Windows IT Pro | See More Systems Administration Articles Here | Reprints
Or get the Monthly Online Pass—only $5.95 a month!
SideBar    Getting and Using the System.String Object's Members

Executive Summary:

Windows PowerShell cmdlets often include strings. The rules that govern how to use quotes in PowerShell strings are referred to as quoting rules. In this lesson, you’ll learn about these rules. You also learn how to obtain and use the methods and properties of PowerShell's System.String object.

Most PowerShell statements include string values. Usually, these strings are passed to cmdlets as arguments. In some cases, the strings are enclosed in single quotes. In other cases, they’re enclosed in double quotes. And sometimes they’re not enclosed in quotes at all. It’s important to understand how to properly handle strings. The rules that govern how to do so are often referred to as quoting rules. In this lesson, you’ll learn about these rules. Specifically, you’ll learn when to enclose string values in quotes and whether to use single or double quotes. In addition, you’ll learn how to flag, or escape, special characters.

Working with String Values
Whenever you enclose text in quotes, PowerShell treats that text as a string value. So, as long as the text doesn’t contain any special characters (you’ll learn more about these characters shortly) or reference variables (I’ll discuss how to reference variables in strings in the next lesson), you can enclose the text in either single or double quotes. For example, the following statements achieve the same results:

Write-Output “String in quotes.”
Write-Output ‘String in quotes.’

In these examples, the Write-Output cmdlet sends a string object down the pipeline or, in this case, directly to the PowerShell console. As you can see in Figure 1, the outputted value is the same for both statements.

In addition to the Write-Output cmdlet, PowerShell’s Out-Host and Write-Host cmdlets output information to the console. Their differences lie in the details. For example, the Write-Output cmdlet sends output down the pipeline to the next cmdlet. When Write-Output is the last cmdlet in the pipeline, the output is displayed in the console. The Out-Host cmdlet sends output directly to the console and offers an optional parameter that lets you view the output one screen at a time, which can be helpful if there is a lot of output. This is the default output cmdlet, so if you don’t specify an output cmdlet, Out-Host cmdlet is used. The Write-Host cmdlet also sends output directly to the console. However, Write-Host has two optional parameters that let you change the color of the text or text background, thereby creating a customized console.

For basic quoted string values that you want to output directly to the console window, all three cmdlets behave in similar ways. For example, the following four commands all display the string in the console window in the same way as in Figure 1:

“String in quotes.”
Write-Output “String in quotes.”
Write-Host “String in quotes.”
Out-Host `
  -InputObject “String in quotes.”

Notice that no cmdlet is specified in the first command. As a result, the Out-Host cmdlet is used.

For many of the examples in this lesson, I use the Write-Output cmdlet because it outputs an object in a way similar to many other cmdlets. This lets me demonstrate different principles about quoted values. Keep in mind, however, that the Write-Output, Out- Host, and Write-Host cmdlets can behave differently in different circumstances. For more information about these cmdlets, see their Help files.

If you want to include quotes within a string, you can use single quotes within double quotes or double quotes within single quotes:

Write-Output “String ‘in’ quotes.”
Write-Output ‘String “in” quotes.’

If you refer again to Figure 1, you’ll see that inside quotes in both cases are carried to the output. This isn’t the case when you use the same type of quotes throughout the string:

Write-Output “String “in” quotes.”
Write-Output ‘String ‘in’ quotes.’

As Figure 1 shows, the results are quite different. In both cases, the quotes are not displayed and a new line is added. This is because PowerShell interprets the one string as multiple strings and consequently adds a line break. For example, PowerShell interprets String as the first string (so it adds a line break after that string), then interprets the rest as a different string. You can use double quotes within double quotes, but you must escape the inside quotes, which I’ll describe how to do later.

Whenever you work with quotes, be careful not to mix up the type of quotes or forget to include one. Otherwise, you might get stuck in a loop that continues to prompt you for an entry—but nothing you enter gets you out of the loop. If you run into that situation, press Ctrl+C to return to the command prompt.

Another issue to take into account when defining cmdlet arguments is how Power- Shell treats numerical values. As I said earlier, PowerShell treats any values within quotes as strings, even if the value consists of all numbers:

Write-Output “123”

When you execute this statement (shown in Figure 2), the value returned is a string object, as Figure 2 shows. You can verify the value’s type by running the statement:

(Write-Output “123”).GetType()

Continue on Page 2

   Previous  [1]  2  Next 


Reader Comments
This was useful

petmwintel May 27, 2008 (Article Rating: )


You must log on before posting a comment.

If you don't have a username & password, please register now.




Learning Path To read the previous PowerShell 101 lessons, go to
"PowerShell 101, Lesson 1"

"PowerShell 101, Lesson 2"

"PowerShell 101, Lesson 3"


If you're beyond the basics, check out
"Enhance PowerShell's Syntax Display"

"Working with Shortcuts in Windows PowerShell"


Top Viewed ArticlesView all articles
Windows Chief Leaving Microsoft

Kevin Johnson, the man most directly responsible for current and future versions of Windows, as well as Windows Live and Microsoft's online services, is leaving the company for a position at Juniper Networks. Johnson has been co-president or president ...

How can I limit Exchange mailbox size?

...

The Memory-Optimization Hoax

Don't believe the hype. At best, RAM optimizers have no effect. At worst, they seriously degrade performance. ...


Related Articles PowerShell Queries for Failed Services on Remote Machines

Making PowerShell's Out-Printer Cmdlet Easier to Use

Essential Windows PowerShell Commands

Dig Out by Digging Into PowerShell

Windows OSs Whitepapers Replay for Exchange: Enterprise Protection and an Affordable Price

Are You Satisfied?

A Preliminary Look at Deployment Plans for Microsoft Windows Vista

Related Events Check out our list of Free Email Newsletters!

Scripting eBooks Keeping Your Business Safe from Attack: Encryption and Certificate Services

Best Practices for Managing Linux and UNIX Servers

Building an Effective Reporting System

Related Scripting Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.


ADS BY GOOGLE SPONSORED LINKS FEATURED LINKS

Shortcut Guide to SQL Server Infrastructure Optimization
With right tools and techniques, you can have a top-performing SQL Server infrastructure without having to cram your data centers so that they're overflowing. Download this eBook to learn how.

WinConnections Conference Fall 2008
Don’t miss the premier event for Microsoft IT Professionals in Las Vegas, November 10-13. Register and book your room by August 25 and receive a FREE room night (based on a three night minimum stay).

Become a fan of Windows IT Pro on Facebook!
Join us on Facebook and be a fan of Windows IT Pro!

Continuous Data Protection and Recovery for Exchange
Read this white paper to learn about Continuous Data Protection (CDP), Exchange 2007's local continuous replication and cluster continuous replication features.

Rev Up Your IT Know-How with Our Recharged Magazine!
The improved Windows IT Pro provides trusted IT content with an enhanced new look and functionality! Get comprehensive coverage of industry topics, expert advice, and real-world solutions—PLUS access to over 10,000 articles online. Order today!

Tips to Managing Messaging
Discover three fundamental mail and messaging management services - security, availability and control services - and how you can implement them in a Microsoft-centric mail and messaging environment.

Get It All with Windows IT Pro VIP
Stock your IT toolbox with every solution ever printed in Windows IT Pro and SQL Server Magazine plus bonus Web-exclusive content on hot topics. Subscribe to receive the VIP CD and a subscription to your choice of Windows IT Pro or SQL Server Magazine!



Solving PST Management Problems
In this white paper, read about the top PST issues and how to administer local/network PST files.

Bandwidth Monitoring Tool from SolarWinds
Identify largest bandwidth users in seconds. Get the free download now.

Transform Your Data Center at Brocade Conference 2008
Storage networking industry’s premier event at the MGM Grand, Las Vegas, September 22 - 24, 2008

Are You Litigation Ready?
Collecting and processing electronic data for e-discovery can be time-consuming and expose a business to significant legal risks. Get prepared with this free white paper

Order Your Fundamentals CD Today!
Gain an introduction to Exchange, learn server security requirements, and understand how unified communications can play a role in your messaging strategies with this free Exchange CD.

KVM over IP Solutions
Learn about a KVM over IP solution that is specifically designed to meet the needs of the distributed IT environment.
Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound
IT Library Technical Resources Directory Connected Home Windows Excavator SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2008 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing