Bird
Raised Fist0
PowerShellscripting~15 mins

-replace operator in PowerShell - Mini Project: Build & Apply

Choose your learning style10 modes available
Using the -replace Operator in PowerShell
📖 Scenario: You work in a small office where you keep a list of employee email addresses. Some emails have an old domain that needs to be updated to a new domain.
🎯 Goal: You will create a list of email addresses, set the old domain to replace, use the -replace operator to update the emails, and then display the updated list.
📋 What You'll Learn
Create a list of email addresses with exact values
Create a variable for the old domain string
Use the -replace operator to update the domain in all emails
Print the updated list of email addresses
💡 Why This Matters
🌍 Real World
Updating email domains is common when companies rebrand or merge. Automating this saves time and avoids mistakes.
💼 Career
Knowing how to use the <code>-replace</code> operator helps in scripting tasks for system administration and data cleanup.
Progress0 / 4 steps
1
Create the list of email addresses
Create a list called emails with these exact email addresses: "alice@oldcompany.com", "bob@oldcompany.com", and "carol@oldcompany.com".
PowerShell
Hint

Use @() to create an array in PowerShell.

2
Set the old domain to replace
Create a variable called oldDomain and set it to the string "oldcompany.com".
PowerShell
Hint

Use = to assign the string to the variable.

3
Replace the old domain with the new domain
Create a new list called updatedEmails by replacing oldDomain with "newcompany.com" in each email using the -replace operator.
PowerShell
Hint

Use -replace with the syntax: $list -replace old, new.

4
Display the updated email addresses
Print the updatedEmails list to show the new email addresses.
PowerShell
Hint

Simply output the variable updatedEmails to display the list.

Practice

(1/5)
1. What does the PowerShell -replace operator do?
easy
A. It creates new variables.
B. It deletes files from the system.
C. It replaces parts of a string matching a pattern with new text.
D. It runs a loop over a list.

Solution

  1. Step 1: Understand the purpose of -replace

    The -replace operator is used to find text matching a pattern and replace it with new text.
  2. Step 2: Compare options with the operator's function

    Only It replaces parts of a string matching a pattern with new text. describes replacing parts of a string, which matches the operator's purpose.
  3. Final Answer:

    It replaces parts of a string matching a pattern with new text. -> Option C
  4. Quick Check:

    -replace changes text = A [OK]
Hint: Remember: -replace changes text parts by pattern [OK]
Common Mistakes:
  • Confusing -replace with file or variable commands
  • Thinking it modifies files or variables directly
  • Assuming it runs loops or deletes data
2. Which of the following is the correct syntax to replace 'cat' with 'dog' in the string 'I have a cat' using -replace?
easy
A. 'I have a cat' -replace('cat', 'dog')
B. 'I have a cat' -replace 'cat', 'dog'
C. 'I have a cat' -replace 'cat' 'dog'
D. 'I have a cat' replace 'cat' with 'dog'

Solution

  1. Step 1: Recall the syntax of -replace

    The correct syntax uses -replace followed by two strings separated by a comma: string -replace 'pattern', 'replacement'.
  2. Step 2: Check each option

    'I have a cat' -replace 'cat', 'dog' matches the correct syntax. Options A, B, and D have syntax errors or incorrect usage.
  3. Final Answer:

    'I have a cat' -replace 'cat', 'dog' -> Option B
  4. Quick Check:

    Correct syntax uses comma between pattern and replacement [OK]
Hint: Use comma between pattern and replacement in -replace [OK]
Common Mistakes:
  • Omitting the comma between pattern and replacement
  • Using parentheses like a function call
  • Writing 'replace' without the dash
3. What is the output of this PowerShell command?
'Hello 123' -replace '\d', '#'
medium
A. Hello ###
B. Hello 123
C. Hello \d
D. Error: Invalid pattern

Solution

  1. Step 1: Understand the pattern '\d'

    The pattern '\d' matches any digit character (0-9) in the string.
  2. Step 2: Apply replacement

    Each digit in '123' is replaced by '#', so '123' becomes '###'. The rest of the string remains unchanged.
  3. Final Answer:

    Hello ### -> Option A
  4. Quick Check:

    Digits replaced by '#' = Hello ### [OK]
Hint: Remember '\d' matches digits in regex for -replace [OK]
Common Mistakes:
  • Thinking '\d' is literal text, not a digit pattern
  • Expecting original string unchanged
  • Confusing escape sequences in regex
4. The following command throws an error. What is the problem?
'PowerShell' -replace 's',
medium
A. Missing replacement string after the comma
B. Pattern 's' is invalid
C. The string 'PowerShell' is not quoted
D. The -replace operator cannot be used on strings

Solution

  1. Step 1: Check the -replace syntax

    The -replace operator requires two arguments: a pattern and a replacement string, separated by a comma.
  2. Step 2: Identify the error

    The command ends with a comma but no replacement string, causing a syntax error.
  3. Final Answer:

    Missing replacement string after the comma -> Option A
  4. Quick Check:

    Both pattern and replacement needed [OK]
Hint: Always provide both pattern and replacement strings [OK]
Common Mistakes:
  • Leaving out the replacement string
  • Misunderstanding the comma separator
  • Assuming pattern alone is enough
5. You want to replace all vowels in the string 'Automation' with '*'. Which command correctly does this using -replace?
hard
A. 'Automation' -replace '[aeiou]', '*' -all
B. 'Automation' -replace 'aeiou', '*'
C. 'Automation' -replace '[aeiou]+' '*'
D. 'Automation' -replace '[aeiou]', '*'

Solution

  1. Step 1: Understand the pattern for vowels

    The pattern '[aeiou]' matches any single vowel character in the string.
  2. Step 2: Check the replacement command

    'Automation' -replace '[aeiou]', '*' uses the correct regex pattern and syntax to replace each vowel with '*'. 'Automation' -replace 'aeiou', '*' treats vowels as a literal string, not a pattern. 'Automation' -replace '[aeiou]+' '*' lacks the comma between pattern and replacement, causing a syntax error. 'Automation' -replace '[aeiou]', '*' -all uses an invalid '-all' flag.
  3. Final Answer:

    'Automation' -replace '[aeiou]', '*' -> Option D
  4. Quick Check:

    Use character class '[aeiou]' for vowels [OK]
Hint: Use square brackets for character sets in regex patterns [OK]
Common Mistakes:
  • Not using brackets for character sets
  • Trying to pass multiple arguments without comma
  • Adding unsupported flags like '-all'
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard