This is an old revision of the document!
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 forrward
Operators
Variables
$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 values
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>