Powershell
- Powershell (quick-n-dirty)
Interactive Mode
History
- Use
h
orhistory
command to list history- Use
#<num> <tab>
to recall the command to the command prompt without executing it - Use
Invoke-History <num>
orr <num>
to execute the specified command - Open stored history in text editor.
notepad (Get-PSReadlineOption).HistorySavePath
- Use
get-history | out-gridview -Passthru | invoke-history
to get and invoke command from history using a grid view. Alternatively,h | ogv -p | r
. Or, just create a function for it,function hh {get-history | out-gridview -Passthru | invoke-history}
- Use
Ctrl+r
to interactively search backward through history andCtrl+s
to search forward- Use
Esc
to recall command to current command line - Use
Esc
again to remove it from the current command line - Alternatively, use left/right arrow keys or
end
to select the current search result
- Use
Esc
to clear the current line - Use
Ctrl+l
to clear whole screen
Operators
Variables
Get-Variable
, to list all variables in the current session
Basic Scalar Example
$fname = "Spunky" $lname = "Violet" Write-Host "World meet $fname $lname."
Built-in/Automatic/Special Variables
$?
, exit code of last operation$ARGS
, array of arguments passed to script.$NULL
, variable that represents null value, big surprise.$true
and$false
represent the boolean valuesenv:
, pseudo drive for environment variables
Input/Output
Example of using Out-GridView for handy way to get output
Get-Alias | Out-GridView
Example of selecting a property from objects
$files = ls .\* -Exclude @("*.tmp") $files | select -Property FullName # Alternative: this method does not include the property header that is included with the Select-Object method above $files | foreach {$_.FullName}
Conditionals
If Statement
if (Test-Path $file -eq $True) { Write-Host "Found a file." } else { Write-Host "No file found." }
if ($a -gt 2) { Write-Host "The value $a is greater than 2." } elseif ($a -eq 2) { Write-Host "The value $a is equal to 2." } else { Write-Host "The value $a is less than 2 or was not created or initialized." }
Miscellanea
Allow all scripts to be ran
Set-ExecutionPolicy bypass
One-liner
-executionpolicy bypass
, overrrides local system policy configuration to allow any script to run. Sometimes you just need to get things done.
powershell -executionpolicy bypass -command <command text>