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.

Example 11-1. Using ...

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.