Chapter 11. Lists, Arrays, and Hashtables
11.0. Introduction
Most scripts deal with more than one thing—lists of servers, lists of files, lookup codes, and more. To enable this, PowerShell supports many features to help you through both its language features and utility cmdlets.
PowerShell makes working with arrays and lists much like working with other data types: you can easily create an array or list and then add or remove elements from it. You can just as easily sort it, search it, or combine it with another array. When you want to store a mapping between one piece of data and another, a hashtable solves that need perfectly.
11.1. Create an Array or List of Items
Problem
You want to create an array or list of items.
Solution
To create an array that holds a given set of items, separate those items with commas:
PS >$myArray = 1,2,"Hello World" PS >$myArray 1 2 Hello World
To create an array of a specific size, use the New-Object
cmdlet:
PS >$myArray = New-Object string[] 10 PS >$myArray[5] = "Hello" PS >$myArray[5] Hello
To store the output of a command that generates a list, use variable assignment:
PS >$myArray = Get-Process PS >$myArray Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 274 6 1316 3908 33 3164 alg 983 7 3636 7472 30 688 csrss 69 4 924 3332 30 0.69 2232 ctfmon 180 5 2220 6116 37 2816 dllhost (...)
To create an array that you plan to modify frequently, use an ArrayList
, as shown by Example 11-1.
Get Windows PowerShell Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.