Bird
Raised Fist0
PowerShellscripting~10 mins

Environment variables in PowerShell - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to get the value of the PATH environment variable.

PowerShell
Write-Output $Env:[1]
Drag options to blanks, or click blank then click option'
AHOME
BTEMP
CUSER
DPATH
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase variable names like $Env:path which is case-sensitive.
Trying to access environment variables without $Env: prefix.
2fill in blank
medium

Complete the code to set a new environment variable named MY_VAR with value 'Hello'.

PowerShell
$Env:[1] = '[2]'
Drag options to blanks, or click blank then click option'
AMY_VAR
BHello
CTEMP
DUSER
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect variable names like PATH instead of MY_VAR.
Not using quotes around string values.
3fill in blank
hard

Fix the error in the code to correctly append a directory to the PATH environment variable.

PowerShell
$Env:PATH = $Env:PATH + ';' + [1]
Drag options to blanks, or click blank then click option'
A$NewFolder
BNewFolder
C'C:\NewFolder'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not defined.
Including quotes inside the concatenation causing literal quotes in PATH.
4fill in blank
hard

Fill both blanks to check if the environment variable MY_VAR exists and print its value if it does.

PowerShell
if ($Env:[1]) { Write-Output $Env:[2] } else { Write-Output 'Variable not found' }
Drag options to blanks, or click blank then click option'
AMY_VAR
BPATH
CTEMP
DUSER
Attempts:
3 left
💡 Hint
Common Mistakes
Checking one variable but printing another.
Using variable names that do not exist.
5fill in blank
hard

Fill all three blanks to create a new environment variable, check if it exists, and print a message with its value.

PowerShell
$Env:[1] = '[2]'
if ($Env:[3]) { Write-Output "Value is $Env:[3]" } else { Write-Output 'Not set' }
Drag options to blanks, or click blank then click option'
AMY_VAR
BHelloWorld
DPATH
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names for setting and checking.
Forgetting to quote the string value.

Practice

(1/5)
1. What is the correct way to access the environment variable PATH in PowerShell?
easy
A. Use PATH$
B. Use get-env PATH
C. Use env(PATH)
D. Use $env:PATH

Solution

  1. Step 1: Understand PowerShell environment variable syntax

    PowerShell uses $env:VARIABLE_NAME to access environment variables.
  2. Step 2: Apply syntax to PATH variable

    To get the PATH variable, write $env:PATH.
  3. Final Answer:

    Use $env:PATH -> Option D
  4. Quick Check:

    Environment variable access = $env:VARIABLE [OK]
Hint: Remember: environment variables use $env: prefix in PowerShell [OK]
Common Mistakes:
  • Using incorrect syntax like get-env or env()
  • Forgetting the $env: prefix
  • Trying to access variables without colon
2. Which of the following is the correct syntax to set an environment variable named MY_VAR to the value hello in PowerShell?
easy
A. set-env MY_VAR hello
B. $env:MY_VAR = 'hello'
C. env MY_VAR = hello
D. set $env:MY_VAR hello

Solution

  1. Step 1: Recall how to assign environment variables in PowerShell

    PowerShell assigns environment variables by setting $env:VariableName to a value.
  2. Step 2: Apply assignment to MY_VAR

    Use $env:MY_VAR = 'hello' to set the variable.
  3. Final Answer:

    $env:MY_VAR = 'hello' -> Option B
  4. Quick Check:

    Set env var = $env:VAR = value [OK]
Hint: Set env vars with $env:VAR = 'value' syntax [OK]
Common Mistakes:
  • Using set-env which is not a PowerShell cmdlet
  • Missing quotes around string values
  • Trying to assign without $env: prefix
3. What will be the output of the following PowerShell commands?
$env:GREETING = 'Hello'
Write-Output "$env:GREETING, World!"
medium
A. Hello, World!
B. $env:GREETING, World!
C. GREETING, World!
D. Error: Variable not found

Solution

  1. Step 1: Assign environment variable GREETING

    The command $env:GREETING = 'Hello' sets the environment variable GREETING to 'Hello'.
  2. Step 2: Output the string with variable expansion

    The command Write-Output "$env:GREETING, World!" expands $env:GREETING to 'Hello', so the output is 'Hello, World!'.
  3. Final Answer:

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

    Variable expands correctly = Hello, World! [OK]
Hint: Variables inside double quotes expand automatically in PowerShell [OK]
Common Mistakes:
  • Expecting literal $env:GREETING instead of expansion
  • Using single quotes which prevent expansion
  • Assuming environment variables are not accessible in strings
4. You run this script but get an error:
Write-Output $envMY_VAR

What is the error and how to fix it?
medium
A. Environment variables cannot be used in Write-Output
B. Variable name is case sensitive; use $env:my_var
C. Missing colon after env; fix by using $env:MY_VAR
D. Use double quotes around variable: "$envMY_VAR"

Solution

  1. Step 1: Identify syntax error in variable name

    The variable $envMY_VAR is invalid because environment variables require a colon after env, like $env:MY_VAR.
  2. Step 2: Correct the syntax

    Fix the script by changing to Write-Output $env:MY_VAR to properly access the environment variable.
  3. Final Answer:

    Missing colon after env; fix by using $env:MY_VAR -> Option C
  4. Quick Check:

    Env vars need colon after env = $env:VAR [OK]
Hint: Always use colon after env to access variables: $env:VAR [OK]
Common Mistakes:
  • Omitting colon after env
  • Assuming variable names are case sensitive
  • Trying to quote variable name instead of fixing syntax
5. You want to temporarily add a folder C:\Tools to the PATH environment variable for your current PowerShell session only. Which command correctly does this?
hard
A. $env:PATH = $env:PATH + ';C:\Tools'
B. setx PATH "$env:PATH;C:\Tools"
C. New-Item -Path Env:PATH -Value 'C:\Tools'
D. $env:PATH += 'C:\Tools'

Solution

  1. Step 1: Understand session vs persistent environment variables

    Modifying $env:PATH directly changes it only for the current session.
  2. Step 2: Append new folder to existing PATH

    Use $env:PATH = $env:PATH + ';C:\Tools' to add the folder, separating with a semicolon.
  3. Final Answer:

    $env:PATH = $env:PATH + ';C:\Tools' -> Option A
  4. Quick Check:

    Append with $env:PATH = $env:PATH + ';new_path' [OK]
Hint: Append with $env:PATH = $env:PATH + ';new_folder' for session only [OK]
Common Mistakes:
  • Using setx which changes persistent variables, not session
  • Using += without semicolon separator
  • Overwriting PATH without appending