Aliases and Shortcuts


PowerShell comes with a number of predefined aliases that can make typing easier. For example, running Gwmi takes less time than typing Get-Wmiobject. This is a definite Unix mentality that values speedy typing over clarity or easy-to-read script. However, speedy typing does save time. Also, if you're just using the shell interactively, there's little reason to care what anyone else thinks about how clear or easy-to-read your script is! The Get-Alias cmdlet shows you all the predefined aliases, as well as any you've added yourself:

 PS C:\> get-alias CommandType     Name                             Definition -----------     ----                             ---------- Alias           ac                               Add-Content Alias           asnp                             Add-PSSnapin Alias           clc                              Clear-Content Alias           cli                              Clear-Item Alias           clp                              Clear-ItemProperty Alias           clv                              Clear-Variable Alias           cpi                              Copy-Item Alias           cpp                              Copy-ItemProperty Alias           cvpa                             Convert-Path Alias           diff                             Compare-Object Alias           epal                             Export-Alias Alias           epcsv                            Export-Csv Alias           fc                               Format-Custom Alias           fl                               Format-List Alias           foreach                          ForEach-Object Alias           %                                ForEach-Object Alias           ft                               Format-Table Alias           fw                               Format-Wide Alias           gal                              Get-Alias Alias           gc                               Get-Content Alias           gci                              Get-ChildItem Alias           gcm                              Get-Command Alias           gdr                              Get-PSDrive Alias           ghy                              Get-History Alias           gi                               Get-Item Alias           gl                               Get-Location Alias           gm                               Get-Member Alias           gp                               Get-ItemProperty Alias           gps                              Get-Process Alias           group                            Group-Object Alias           gsv                              Get-Service Alias           gsnp                             Get-PSSnapin Alias           gu                               Get-Unique Alias           gv                               Get-Variable Alias           gwmi                             Get-WmiObject Alias           iex                              Invoke-Expression Alias           ihy                              Invoke-History Alias           ii                               Invoke-Item Alias           ipal                             Import-Alias Alias           ipcsv                            Import-Csv Alias           mi                               Move-Item Alias           mp                               Move-ItemProperty Alias           nal                              New-Alias Alias           ndr                              New-PSDrive Alias           ni                               New-Item Alias           nv                               New-Variable Alias           oh                               Out-Host Alias           rdr                              Remove-PSDrive Alias           ri                               Remove-Item Alias           rni                              Rename-Item Alias           rnp                              Rename-ItemProperty Alias           rp                               Remove-ItemProperty Alias           rsnp                             Remove-PSSnapin Alias           rv                               Remove-Variable Alias           rvpa                             Resolve-Path Alias           sal                              Set-Alias Alias           sasv                             Start-Service Alias           sc                               Set-Content Alias           select                           Select-Object Alias           si                               Set-Item Alias           sl                               Set-Location Alias           sleep                            Start-Sleep Alias           sort                             Sort-Object Alias           sp                               Set-ItemProperty Alias           spps                             Stop-Process Alias           spsv                             Stop-Service Alias           sv                               Set-Variable Alias           tee                              Tee-Object Alias           where                            Where-Object Alias           ?                                Where-Object Alias           write                            Write-Output Alias           cat                              Get-Content Alias           cd                               Set-Location Alias           clear                            Clear-Host Alias           cp                               Copy-Item Alias           h                                Get-History Alias           history                          Get-History Alias           kill                             Stop-Process Alias           lp                               Out-Printer Alias           ls                               Get-ChildItem Alias           mount                            New-PSDrive Alias           mv                               Move-Item Alias           popd                             Pop-Location Alias           ps                               Get-Process Alias           pushd                            Push-Location Alias           pwd                              Get-Location Alias           r                                Invoke-History Alias           rm                               Remove-Item Alias           rmdir                            Remove-Item Alias           echo                             Write-Output Alias           cls                              Clear-Host Alias           chdir                            Set-Location Alias           copy                             Copy-Item Alias           del                              Remove-Item Alias           dir                              Get-ChildItem Alias           erase                            Remove-Item Alias           move                             Move-Item Alias           rd                               Remove-Item Alias           ren                              Rename-Item Alias           set                              Set-Variable Alias           type                             Get-Content 

Some of these aliases are really not obvious. For example, what would you make of an alias that looked like this?

 $g = gwmi win32_service % ($s in $g) { spsv $s } 

Expanding all those aliases makes it easier to read:

 $g = get-wmiobject win32_service Foreach-object ($s in $g) { stop-service $s } 

In fact, this is something that SAPIEN PrimalScript 4.1 (or later) can do for you: It will automatically replace aliases with their full cmdlet names or contract cmdlets down to their available aliases. This helps you switch your script between "concise" and "clear" modes with a single menu option. Giving your variables useful names makes it even easier to follow:

 $services = get-wmiobject win32_service Foreach-object ($service in $services) { stop-service $service } 

Renaming your variables isn't something a script development environment can do automatically. However, if you're careful when writing scripts, you'll find yourself doing this automatically.



Windows PowerShell. TFM
Internet Forensics
ISBN: 982131445
EAN: 2147483647
Year: 2004
Pages: 289

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net