PowerShell with a Purpose Blog

Single Quotes vs. Double Quotes in PowerShell: What's the Difference?

I received variations on this question from no less than four folks today, so it's the official Question of the Day: What's the difference between single and double quotes in PowerShell? Which should I use?

Both kinds of quotes are used to delimit string values. In general, you should use single quotes:

Write-Host 'This is a message'

There are three instances when you might want to shift to double quotes. First, when you want to have variable names replaced with their contents:

$var = 'World'
$out = "Hello $var"
# $out now contains 'Hello World'

That's a useful trick, since it saves you from having to concatenate strings in a lot of situations. Second, when you need to delimit a string within the string - such as in a SQL query:

$query = "SELECT * FROM Customers WHERE Name LIKE '%JONES%'"

Using outer double quotes lets you use the single quotes needed within the string. Finally, when you need to use an escape character, since those aren't parsed within single quotes:

Get-Process | Export-CSV processes.tdf -delimiter "`t"

That creates a tab-delimited file. Apart from those three instances, it's generally considered a best practice to stick with single quotes.



Training Update: SAPIEN Technologies is having me teach a four-day Windows PowerShell class, using the courseware I designed for them, in Las Vegas this February. It'll be at the freshly-remodeled Tropicana hotel (if you haven't seen it in the past couple of months, it's really gone from woesome to awesome). Here are the details. If that's a bit soon for you, I'll have my own 5-day PowerShell Retreat in June, also in Vegas (although slightly off-Strip). Discounted pricing for that is still available, which includes most of your meals and your hotel room for under $3000! It'll be co-located with Greg Shields' Windows 7 Deployment Retreat. Hope to see you in a class soon!
Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish