Bird
Raised Fist0
PowerShellscripting~5 mins

Type casting in PowerShell

Choose your learning style10 modes available
Introduction

Type casting changes a value from one type to another. It helps PowerShell understand how to treat the data.

When you get input as text but need a number to do math.
When you want to convert a number to text to show it nicely.
When you want to make sure a value is treated as a specific type before using it.
When reading data from files or user input that is always text but you need other types.
When you want to force PowerShell to store a value in a smaller or different type.
Syntax
PowerShell
[Type]$variable = ([Type])$value
Use square brackets [ ] to specify the type you want.
Put the value in parentheses ( ) to convert it.
Examples
This converts the string "123" to an integer number 123.
PowerShell
[int]$number = [int]("123")
This converts the number 456 to the string "456".
PowerShell
[string]$text = [string](456)
This converts the number 0 to the boolean value False.
PowerShell
[bool]$flag = [bool](0)
Sample Program

This script shows how to convert a string to an integer, then back to a string, and also how to convert a number to a boolean.

PowerShell
$inputString = "100"
[int]$number = [int]$inputString
[string]$text = [string]$number
[bool]$flag = [bool](0)

Write-Output "Original string: $inputString"
Write-Output "After casting to int: $number"
Write-Output "After casting back to string: $text"
Write-Output "Casting 0 to bool: $flag"
OutputSuccess
Important Notes

Type casting only changes how PowerShell treats the value, it does not change the original data source.

If the value cannot be converted, PowerShell will give an error.

Common types are int, string, bool, double, datetime, and more.

Summary

Type casting changes data from one type to another in PowerShell.

Use [Type](value) to convert values safely.

It helps when you need specific data types for calculations or display.

Practice

(1/5)
1. What does type casting do in PowerShell?
easy
A. It changes a value from one data type to another.
B. It creates a new variable without a value.
C. It deletes a variable from memory.
D. It runs a script automatically.

Solution

  1. Step 1: Understand type casting meaning

    Type casting means converting a value from one type to another, like string to integer.
  2. Step 2: Match with options

    Only It changes a value from one data type to another. describes changing data types, which is type casting.
  3. Final Answer:

    It changes a value from one data type to another. -> Option A
  4. Quick Check:

    Type casting = changing data type [OK]
Hint: Type casting means changing data type of a value [OK]
Common Mistakes:
  • Confusing type casting with variable creation
  • Thinking it deletes variables
  • Assuming it runs scripts automatically
2. Which of the following is the correct syntax to cast the string '123' to an integer in PowerShell?
easy
A. [int]'123'
B. int('123')
C. (int)'123'
D. cast int '123'

Solution

  1. Step 1: Recall PowerShell casting syntax

    PowerShell uses [Type](value) to cast, e.g., [int]'123'.
  2. Step 2: Check options for correct syntax

    [int]'123' matches the correct syntax. Options A, C, and D are invalid in PowerShell.
  3. Final Answer:

    [int]'123' -> Option A
  4. Quick Check:

    Use [Type](value) for casting [OK]
Hint: Use square brackets with type before value [OK]
Common Mistakes:
  • Using parentheses like a function call
  • Trying to use 'cast' keyword
  • Missing square brackets
3. What will be the output of this PowerShell code?
$value = [int]'5.7'
Write-Output $value
medium
A. 5.7
B. 5
C. Error
D. 6

Solution

  1. Step 1: Understand casting string '5.7' to int

    Casting string '5.7' to int truncates the decimal part, resulting in 5.
  2. Step 2: Check output of Write-Output

    It prints the integer 5, not 5.7 or 6, and no error occurs.
  3. Final Answer:

    5 -> Option B
  4. Quick Check:

    String to int truncates decimals = 5 [OK]
Hint: Casting float string to int truncates decimals [OK]
Common Mistakes:
  • Expecting rounding instead of truncation
  • Thinking it throws an error
  • Assuming output stays as string
4. Identify the error in this PowerShell code:
$num = [int] 'abc'
medium
A. No error, $num becomes 0
B. Syntax error due to space between [int] and string
C. Runtime error: Cannot convert 'abc' to int
D. It converts 'abc' to string automatically

Solution

  1. Step 1: Analyze casting 'abc' to int

    String 'abc' cannot be converted to integer, causing a runtime error.
  2. Step 2: Check syntax and error type

    Space between [int] and string is allowed; error is runtime conversion failure.
  3. Final Answer:

    Runtime error: Cannot convert 'abc' to int -> Option C
  4. Quick Check:

    Invalid string to int causes runtime error [OK]
Hint: Invalid string to int causes runtime error [OK]
Common Mistakes:
  • Thinking space causes syntax error
  • Assuming it converts to zero
  • Believing it auto-converts to string
5. You have a list of strings representing numbers: @('10', '20', '30'). How do you convert all items to integers in PowerShell efficiently?
hard
A. @('10', '20', '30').ToInt()
B. [int]@('10', '20', '30')
C. Cast-Int @('10', '20', '30')
D. @('10', '20', '30') | ForEach-Object { [int]$_ }

Solution

  1. Step 1: Understand list conversion

    Each string must be cast individually to int; PowerShell does not cast arrays directly.
  2. Step 2: Check options for correct method

    @('10', '20', '30') | ForEach-Object { [int]$_ } uses ForEach-Object to cast each item correctly. Options A, B, and D are invalid or unsupported.
  3. Final Answer:

    @('10', '20', '30') | ForEach-Object { [int]$_ } -> Option D
  4. Quick Check:

    Use ForEach-Object to cast each item [OK]
Hint: Use ForEach-Object to cast each array item [OK]
Common Mistakes:
  • Trying to cast whole array at once
  • Using non-existent methods like ToInt()
  • Assuming a Cast-Int cmdlet exists
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