Bird
Raised Fist0
PowerShellscripting~5 mins

Range operator (..) in PowerShell

Choose your learning style10 modes available
Introduction
The range operator (..) helps you create a list of numbers quickly without typing each one.
When you want to count from 1 to 10 in a script.
To create a list of numbers for looping through tasks.
When you need to generate a sequence of numbers for calculations.
To quickly make a list of days or months in a script.
When you want to select a range of items by their number.
Syntax
PowerShell
$start..$end
The operator creates an array of numbers from start to end, including both.
If start is greater than end, it creates a descending list.
Examples
Creates numbers from 1 to 5: 1, 2, 3, 4, 5.
PowerShell
1..5
Creates numbers from 10 down to 7: 10, 9, 8, 7.
PowerShell
10..7
Creates numbers from 3 to 6 using variables.
PowerShell
$a = 3; $b = 6; $a..$b
Sample Program
This script creates numbers from 1 to 5 and prints each with a label.
PowerShell
$numbers = 1..5
foreach ($num in $numbers) {
    Write-Output "Number: $num"
}
OutputSuccess
Important Notes
The range operator always includes both the start and end numbers.
You can use the range operator inside loops to repeat actions easily.
If you use it with strings, it will not work as expected because it is for numbers.
Summary
The range operator (..) creates a list of numbers between two values.
It works both for counting up and counting down.
Use it to simplify creating number lists in your scripts.

Practice

(1/5)
1. What does the PowerShell range operator 1..5 produce?
easy
A. An empty list
B. A list of numbers from 5 to 1 inclusive
C. A syntax error
D. A list of numbers from 1 to 5 inclusive

Solution

  1. Step 1: Understand the range operator syntax

    The range operator .. creates a sequence of numbers from the first number to the second number.
  2. Step 2: Apply the operator to 1..5

    It creates a list starting at 1 and ending at 5, including both ends.
  3. Final Answer:

    A list of numbers from 1 to 5 inclusive -> Option D
  4. Quick Check:

    Range 1..5 = 1,2,3,4,5 [OK]
Hint: Range operator lists numbers from start to end inclusive [OK]
Common Mistakes:
  • Thinking it counts down by default
  • Expecting exclusive end value
  • Confusing syntax with other operators
2. Which of the following is the correct syntax to create a descending range from 5 to 1 in PowerShell?
easy
A. 5-1
B. 1..5
C. 5..1
D. range(5,1)

Solution

  1. Step 1: Identify how to create descending ranges

    PowerShell range operator supports descending ranges by placing the higher number first.
  2. Step 2: Check the options

    5..1 uses 5..1 which creates a descending list from 5 down to 1.
  3. Final Answer:

    5..1 -> Option C
  4. Quick Check:

    Descending range = 5..1 [OK]
Hint: Put larger number first for descending range [OK]
Common Mistakes:
  • Using 1..5 for descending range
  • Using invalid syntax like 5-1
  • Using non-PowerShell functions like range()
3. What is the output of this PowerShell command?
1..3 | ForEach-Object { $_ * 2 }
medium
A. 2 4 6
B. 1 2 3
C. 3 6 9
D. Error: Invalid operation

Solution

  1. Step 1: Understand the range and pipeline

    The range operator 1..3 produces 1, 2, 3 which are piped one by one.
  2. Step 2: Multiply each number by 2

    Each number is multiplied by 2: 1*2=2, 2*2=4, 3*2=6.
  3. Final Answer:

    2 4 6 -> Option A
  4. Quick Check:

    1..3 * 2 = 2 4 6 [OK]
Hint: Range pipes each number; multiply inside loop [OK]
Common Mistakes:
  • Expecting original numbers without multiplication
  • Confusing multiplication with addition
  • Thinking it produces a syntax error
4. You wrote this code but it throws an error:
5..1..1

What is the problem?
medium
A. Range operator does not support three dots
B. Range operator requires spaces between dots
C. Range operator only works with ascending numbers
D. Range operator needs parentheses around numbers

Solution

  1. Step 1: Analyze the syntax used

    The code uses three dots .. twice in a row, making ..1..1 which is invalid.
  2. Step 2: Understand range operator limitations

    The range operator only supports two dots .. between two numbers, not three dots or step values.
  3. Final Answer:

    Range operator does not support three dots -> Option A
  4. Quick Check:

    Only two dots allowed in range operator [OK]
Hint: Range operator uses exactly two dots (..), no more [OK]
Common Mistakes:
  • Trying to add step value with extra dots
  • Adding spaces between dots
  • Assuming parentheses fix syntax
5. You want to create a list of even numbers from 2 to 10 using the range operator and filtering. Which script correctly does this?
hard
A. 2..10 | ForEach-Object { $_ * 2 }
B. 2..10 | Where-Object { $_ % 2 -eq 0 }
C. 1..5 | Where-Object { $_ % 2 -eq 0 }
D. 2..10..2

Solution

  1. Step 1: Understand the range and filtering

    The range operator 2..10 creates numbers 2 to 10. Filtering with Where-Object { $_ % 2 -eq 0 } keeps only even numbers.
  2. Step 2: Check each option

    2..10 | Where-Object { $_ % 2 -eq 0 } correctly filters evens from 2 to 10. 2..10 | ForEach-Object { $_ * 2 } doubles numbers 2 to 10 (wrong). 1..5 | Where-Object { $_ % 2 -eq 0 } filters evens from 1 to 5 (wrong range). 2..10..2 uses invalid syntax (range operator does not support step).
  3. Final Answer:

    2..10 | Where-Object { $_ % 2 -eq 0 } -> Option B
  4. Quick Check:

    Filter evens from range with Where-Object [OK]
Hint: Use Where-Object to filter even numbers after range [OK]
Common Mistakes:
  • Trying to add step in range operator
  • Using wrong range limits
  • Multiplying instead of filtering
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