Book Image

Mastering PowerShell Scripting - Fourth Edition

By : Chris Dent
5 (1)
Book Image

Mastering PowerShell Scripting - Fourth Edition

5 (1)
By: Chris Dent

Overview of this book

PowerShell scripts offer a convenient way to automate various tasks, but working with them can be daunting. Mastering PowerShell Scripting takes away the fear and helps you navigate through PowerShell's capabilities.This extensively revised edition includes new chapters on debugging and troubleshooting and creating GUIs (online chapter). Learn the new features of PowerShell 7.1 by working with parameters, objects, and .NET classes from within PowerShell 7.1. This comprehensive guide starts with the basics before moving on to advanced topics, including asynchronous processing, desired state configuration, using more complex scripts and filters, debugging issues, and error-handling techniques. Explore how to efficiently manage substantial amounts of data and interact with other services using PowerShell 7.1. This book will help you to make the most of PowerShell's automation features, using different methods to parse data, manipulate regular expressions, and work with Windows Management Instrumentation (WMI).
Table of Contents (26 chapters)
24
Other Books You May Enjoy
25
Index

The .NET Regex type

Much of this chapter has been concerned with the -match operator. The -match operator is extremely useful but has a short-coming: it returns a single contiguous string match from the value on the left-hand side of the operator; it cannot return more than one match except when using capture groups.

It is occasionally desirable to return all matches from a string. There are two ways to tackle this:

  1. Use the Select-String command with the AllMatches parameter
  2. Use the static Matches method of the Regex type

For example, the following string contains several key-value pairs:

$string = @'
Name: Ruth
Job title: Programmer
Language: C#
Level: Senior
'@

Each individual line can be broken down into a key and value pair using the following regular expression:

^(?<Key>[^:]+): (?<Value>.+)$

For example, the first line matches the expression. The value Name is placed in the group named Key. The value Ruth is...