Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


March 2008

How to Handle Long PowerShell Statements


RSS
Subscribe to Windows IT Pro | See More Scripting Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!
Main Article    PowerShell 101, Lesson 2

As a PowerShell statement grows larger, it’s not always practical to enter it on a single line in the PowerShell console window. You can enter a long statement on several lines, but you must take into account how PowerShell treats new lines. When PowerShell determines that a line is incomplete, it continues to the next line when processing the statement. For example, when the first line in a statement ends with the pipe operator, as in

Get-Service |
where {$_.status -eq ‘running’} |
select displayname

PowerShell knows that the statement continues to the next line. This statement returns results similar to those shown in Figure 3. Notice the multiline prompt (>>) that precedes each line after the first line. When PowerShell expects a line to continue to a second line, it uses a multiline prompt for that line. You then type the next line of code at that prompt. Once PowerShell enters this multiline mode, it will continue in this mode and always prompt you with the multiline prompt. When you finish entering the last line, press Enter a second time to execute the command and return to the normal prompt.

Now suppose you break the statement before the pipe operator:

 Get-Service
  | where {$_.status -eq ‘running’}
  | select displayname

PowerShell now interprets the first line as complete and processes it as an entire statement. PowerShell then tries to process the second line, which results in the error message: An empty pipe element is not permitted.

You can remedy this situation by adding a back tick (`) to the end of the lines:

 Get-Service `
  | where {$_.status -eq ‘running’} `
  | select displayname

The back tick tells PowerShell that the statement continues to the next line. The statement now returns the same information shown in Figure 3.

PowerShell processes any line that it thinks is a complete statement. In other words, it automatically terminates a statement when it reaches a new line unless it thinks that the statement continues. However, you can also manually terminate a statement by adding a semi-colon (;) at the end:

 Get-Service |
  where {$_.status -eq ‘running’} |
  select displayname;

This statement returns the same results as those shown in Figure 3.

End of Article



Reader Comments

You must be a registered user or online subscriber to comment on this article. Please log on before posting a comment. Are you a new visitor? Register now




Top Viewed ArticlesView all articles
What You Need to Know About Microsoft's x64 Server Product Plans

What do Longhorn Server, Windows Compute Cluster Server, and Windows Vista have in common? The x64 platform. ...

Anti-Virus Vendors Prepare for War with Microsoft ... Again

When Microsoft announced its Windows Live OneCare security and PC health product over five years (as MSN OneCare), Symantec, McAfee, and the other consumer-oriented security vendors reacted with stunning vigor. ...

Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...


Windows OSs Whitepapers Why SaaS is the Right Solution for Log Management

Related Events WinConnections and Microsoft® Exchange Connections

PowerShell 201 - eLearning Series with Paul Robichaux

PowerShell 101 - eLearning Series

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 Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format

Test Drive IT Solutions and Get Free Music Downloads
Solve your toughest IT problems with these free downloads and receive 5 free music downloads!


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 DevProConnections IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home asp.netPRO Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2009 Penton Media, Inc. Terms of Use | Privacy Statement | Reprints and Licensing