Set Variable - PowerShell


Set-Variable assigns a value to a specified variable in the current PowerShell session. It allows you to store and manipulate data dynamically during script execution.


Set-Variable [-Name] <VariableName> [-Value] <VariableValue> [-Option] <OptionValue>


  • -Force: Overwrites an existing variable without prompting for confirmation.
  • -OptionValue: Accepts various options for customizing the variable, such as:
    • Constant: Makes the variable read-only.
    • Hidden: Hides the variable from the output of Get-Variable.
    • ReadOnly: Prevents the variable from being modified.
  • -Scope: Specifies the scope of the variable (Local, Global, Script, Private). Default is Local.


  • Set a simple variable:

    Set-Variable -Name MyName -Value "John Doe"
  • Set a constant variable:

    Set-Variable -Name MyAge -Value 25 -Option Constant
  • Set a variable and customize its options:

    Set-Variable -Name MySettings `
      -Value @{ "Key1" = "Value1"; "Key2" = "Value2" } `
      -Option @{ "Hidden" = $true; "ReadOnly" = $false }

Common Issues

  • Variable name conflict: Ensure the variable name is unique within the current scope.
  • Invalid variable value: Verify the assigned value is compatible with the expected data type.
  • Overwriting variables: Use -Force to overwrite existing variables without prompting.


  • Use Set-Variable in conjunction with Get-Variable to retrieve and manage variables.
  • Combine it with Export-Variable to persist variables between sessions.
  • Create custom scripts that leverage variables to automate tasks dynamically.