エイリアス Set-Alias Get-Alias他

コマンドレットのエイリアス作成

 Set-Alias myls Get-ChildItem

オプション付きのコマンドレットのエイリアスを作成

 Remove-Item alias:ls
 function ls() {
   gci $args | fw -column 4
 }
  • PowerShellのエイリアスはコマンドレットにオプションを指定出来ないので(Set-Alias ls "gci -r"みたいなのは出来ない)、ファンクションを使う。
  • エイリアスはファンクションに優先するので、すでにエイリアスがある場合は削除してから、ファンクションを作成する。

実行ファイル(EXE)のエイリアスを作成

 Set-Alias mynotepad ("notepad.exe")
 Set-Alias mychrome ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
  • PATHに通ってないEXEならフルパスで指定する
  • 引用符""でくくるのでパス名にスペースを含んでもOK

オプション付きの実行ファイル(EXE)のエイリアスを作成

 function mychrome() {
     Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList "--incognito"
 }
  • Start-Processで外部プロセスを実行し、その際に-ArgumentListでオプション(コマンド引数)を指定する

環境変数を展開してオプション付きの実行ファイル(EXE)のエイリアスを作成

 function mychrome() {
    $x = "--user-data-dir=`"" + $env:USERPROFILE + "\my chrome profile`""
    $args += $x
    Start-Process "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList $args
 }
  • PowerShell内で変数$xにオプション文字列を格納する
  • この時、値であるディレクトリパスにスペースが含まれることを想定して引用符""でくるむが、このままではPowerShell内でそれが展開されてしまうので`(バッククォート)でエスケープする
  • できた$xを$args配列にpushする
  • -ArgumentListに$argsを指定する

エイリアス元のコマンドレットを探す

 
 Get-Alias dir                                    
 > CommandType     Name                                               ModuleName  
 > -----------     ----                                               ----------  
 > Alias           dir -> Get-ChildItem                                           

あるコマンドレットのエイリアス名を探す

 Get-Alias -Definition Get-ChildItem* 
 > Get-Alias -Name Get-ChildItem*       
 > Get-Alias -Name Get-ChildItem*       
 > Get-Alias -Definition Get-ChildItem*

エイリアスを削除する

 Remove-Item alias:ls

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2017-10-11 (水) 15:14:56