Bird
Raised Fist0
PowerShellscripting~10 mins

Default parameter values in PowerShell - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set a default value for the parameter $name.

PowerShell
function Greet-User {
    param(
        [string]$name = [1]
    )
    Write-Output "Hello, $name!"
}

Greet-User
Greet-User -name "Alice"
Drag options to blanks, or click blank then click option'
A"Visitor"
B"User"
C"Admin"
D"Guest"
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to use quotes around the default string value.
Not using the equals sign to assign the default value.
2fill in blank
medium

Complete the code to set a default value of 10 for the parameter $count.

PowerShell
function Repeat-Message {
    param(
        [int]$count = [1]
    )
    for ($i = 1; $i -le $count; $i++) {
        Write-Output "Hello!"
    }
}

Repeat-Message
Repeat-Message -count 3
Drag options to blanks, or click blank then click option'
A10
B5
C3
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around numbers for integer parameters.
Not assigning any default value.
3fill in blank
hard

Fix the error in the function by correctly setting the default value for $path to C:\Temp.

PowerShell
function Show-Path {
    param(
        [string]$path = [1]
    )
    Write-Output "Path is: $path"
}

Show-Path
Show-Path -path "C:\Windows"
Drag options to blanks, or click blank then click option'
AC:\Temp
B'C:\Temp'
C"C:\\Temp"
D"C:/Temp"
Attempts:
3 left
💡 Hint
Common Mistakes
Not using quotes around the string.
Using single quotes which do not interpret escape sequences.
Not escaping backslashes.
4fill in blank
hard

Fill both blanks to set default values for $user and $age parameters.

PowerShell
function User-Info {
    param(
        [string]$user = [1],
        [int]$age = [2]
    )
    Write-Output "User: $user, Age: $age"
}

User-Info
User-Info -user "Bob" -age 25
Drag options to blanks, or click blank then click option'
A"Anonymous"
B30
C25
D"Guest"
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up which default value goes to which parameter.
Using quotes around integer default values.
5fill in blank
hard

Fill all three blanks to create a function with default values for $file, $mode, and $verbose.

PowerShell
function Process-File {
    param(
        [string]$file = [1],
        [string]$mode = [2],
        [bool]$verbose = [3]
    )
    Write-Output "File: $file, Mode: $mode, Verbose: $verbose"
}

Process-File
Process-File -file "data.txt" -mode "read" -verbose $true
Drag options to blanks, or click blank then click option'
A"default.txt"
B"read"
C$false
D"write"
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around boolean values.
Mixing up mode default values.

Practice

(1/5)
1. What is the main purpose of using default parameter values in a PowerShell function?
easy
A. To make the function run faster
B. To force the user to always provide a value
C. To provide fallback values when no argument is passed
D. To disable the function if parameters are missing

Solution

  1. Step 1: Understand default parameter values

    Default parameter values are set to be used when no argument is provided by the user.
  2. Step 2: Identify the purpose

    This helps the function run smoothly without errors by using fallback values.
  3. Final Answer:

    To provide fallback values when no argument is passed -> Option C
  4. Quick Check:

    Default values = fallback values [OK]
Hint: Defaults fill in missing inputs automatically [OK]
Common Mistakes:
  • Thinking defaults speed up execution
  • Believing defaults force user input
  • Assuming defaults disable functions
2. Which of the following is the correct syntax to set a default value of 10 for a parameter named $count in a PowerShell function?
easy
A. param([int]$count <- 10)
B. param([int]$count = 10)
C. param([int]$count : 10)
D. param([int]$count => 10)

Solution

  1. Step 1: Recall PowerShell parameter default syntax

    PowerShell uses the equals sign (=) to assign default values in parameters.
  2. Step 2: Match syntax to options

    Only param([int]$count = 10) uses = correctly to assign 10 as default.
  3. Final Answer:

    param([int]$count = 10) -> Option B
  4. Quick Check:

    Default assignment uses = in PowerShell [OK]
Hint: Use = to assign default values in param block [OK]
Common Mistakes:
  • Using : or => instead of = for defaults
  • Confusing syntax with other languages
  • Placing default outside param block
3. What will be the output of this PowerShell function call?
function Greet { param([string]$name = "Guest") "Hello, $name!" }
Greet
medium
A. Hello, Guest!
B. Hello, !
C. Hello, $name!
D. Error: Missing argument

Solution

  1. Step 1: Analyze function parameter default

    The parameter $name has a default value "Guest" if no argument is passed.
  2. Step 2: Check function call without argument

    Calling Greet without arguments uses the default "Guest".
  3. Final Answer:

    Hello, Guest! -> Option A
  4. Quick Check:

    Default used when no argument given = Hello, Guest! [OK]
Hint: No argument? Default value is used [OK]
Common Mistakes:
  • Expecting empty string output
  • Thinking variable name prints literally
  • Assuming error on missing argument
4. Identify the error in this PowerShell function definition:
function Show-Info {
param([string]$info =)
Write-Output $info
}
medium
A. Missing default value after =
B. Parameter type [string] is invalid
C. Write-Output cannot be used inside functions
D. Function name cannot contain a hyphen

Solution

  1. Step 1: Check parameter default syntax

    The parameter $info has an equals sign but no value after it, which is invalid.
  2. Step 2: Validate other parts

    Parameter type [string] is valid, Write-Output is allowed, and hyphens are allowed in function names.
  3. Final Answer:

    Missing default value after = -> Option A
  4. Quick Check:

    Default value must follow = [OK]
Hint: Default values must not be empty after = [OK]
Common Mistakes:
  • Leaving = without a value
  • Misunderstanding function name rules
  • Thinking Write-Output is disallowed
5. You want a PowerShell function Calculate-Sum that adds two numbers, but if the second number is not provided, it should default to the first number. Which parameter default setup achieves this?
hard
A. param([int]$a, [int]$b = 0)
B. param([int]$a = 0, [int]$b = 0)
C. param([int]$a, [int]$b = $null)
D. param([int]$a, [int]$b = $a)

Solution

  1. Step 1: Understand PowerShell parameter default evaluation

    PowerShell binds earlier parameters before evaluating defaults for later ones, allowing references to prior parameters.
  2. Step 2: Identify the correct setup

    param([int]$a, [int]$b = $a) sets $b to the value of $a when $b is not provided.
  3. Final Answer:

    param([int]$a, [int]$b = $a) -> Option D
  4. Quick Check:

    Later defaults can reference earlier parameters [OK]
Hint: Later parameters can default using earlier parameter values [OK]
Common Mistakes:
  • Using fixed defaults like 0 or $null
  • Thinking parameter references are not allowed in defaults
  • Assuming defaults must be literal constants
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