Formatting Output with the -f Format Operator
The -f format operator is a neat tool you can use to control how output is displayed in a script. Using the -f operator, you first identify the column format and then identify what will be in the column. The basic format is
"{0,jp} {1,jp}" -f $Item.itemx, $Item.y
The format of all of the columns is enclosed in the quotes, with each individual column enclosed in braces. The first column is 0, the second column is 1, and so on. Within the column definition, you specify whether it should be right or left justified and the number of characters the column should have. For right justification, the number is positive (such as 30); for left justification, the number is negative (such as -30).
As an example, if you want the first column to be left justified with 30 characters and the second column to be right justified with 15 characters, you'd use this to define the columns:
"{0,-30} {1,15}"
Earlier in the tutorial, you saw this code create a collection of the event logs and then loop through them using a ForEach loop, like this:
$colLog = get-EventLog -list ForEach ($Item in $ColLog) { Write-Output $Item.Log, $Item.MaximumKilobytes }
However, the output wasn't pretty. You can use the -f format operator to identify how the columns should be formatted. The full script would then look like this:
$colLog = get-EventLog -list ForEach ($Item in $ColLog) { "{0,-30} {1,15}" -f $Item.Log, $Item.MaximumKilobytes }
Notice that with the -f operator, you don't need to include the Write-Output clause.
Listing below shows the output on my system.
Listing: Output using the -f operator
Application 20480 DFS Replication 15168 HardwareEvents 20480 Internet Explorer 512 Key Management Service 20480 Media Center 8192 ODiag 16384 OSession 16384 Security 512 System 20480 Windows PowerShell 15360
You can use the -f format operator to format as many columns as desired.
In this tutorial:
- Working with the Command Prompt
- Starting and Ending a Command Prompt Session
- Easy ways to invoke administrator Command Prompt sessions
- Starting Command Prompt at a Particular Folder
- Strings with Spaces Need Quotes
- Cmd.exe vs. Command.com
- Commands Are Not Case Sensitive
- Starting Command Prompt and Running a Command
- Cmd.exe and Other Command Prompts
- Using AutoRun to Execute Commands When Command Prompt Starts
- Using Cmds Command-Line Syntax
- Using Commands
- Type /? for help
- Starting Programs
- Open Windows Explorer at the current Command Prompt folder
- Using File-Name and Folder-Name Completion
- Use a different completion character
- Using Wildcards
- Editing the Command Line
- Using Command Symbols
- The Redirection Symbols
- The Pipe Symbol
- The Command Combination Symbols
- Pausing or Canceling Commands
- Simplifying Command Entry with Doskey Macros
- DOSKEY Saves Typing
- System Variables Identify the Environment
- Viewing Environment Variables
- Modifying Environment Variables
- Predefined Environment Variables
- Customizing Command Prompt Windows
- Setting the Window Size and Position
- Setting the Window Size and Position Visually
- Selecting a Font
- Setting Colors
- Setting Other Options
- Copy and paste in the command prompt window
- Navigating from the command prompt
- Printing a list of filenames
- Commands Use Paths
- Identifying Executables
- Modifying the Path to Executables
- Modifying the Path with the GUI
- Changing the Current Path with CD
- Changing the Current Path with Windows Explorer
- Capturing the Output
- A Sampling of Commands
- Dir
- Copy
- XCopy
- SET
- NET USE
- SystemInfo
- DriverQuery
- Echo
- Advanced Shell Commands
- Creating a Batch File
- Scheduling a Batch File
- Creating Scheduled Tasks with a Script
- Using Windows PowerShell and the PowerShell ISE
- Windows PowerShell ISE
- PowerShell Commands
- Verbs and Nouns
- Sending Output to a Text File
- PowerShell Syntax
- Variables Created with a $ Symbol
- Comparison Operators
- Parentheses, Brackets, and Braces
- Running PowerShell Scripts
- PowerShell Execution Policy
- Changing the Execution Policy
- Looping
- Collections
- Creating a PowerShell Script
- Documenting Scripts
- Using PowerShell Commands
- Getting Help on PowerShell
- Using WMI_Cmdlets
- Getting Details on an Object
- Querying Information on Specific Objects
- Terminate Applications with Win32_process
- Formatting Output with the -f Format Operator
- Filtering the Output with the Where-Object Command
- Using the IF statement
- Using the Switch Statement
- Script Reusability