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

エイリアス 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 (43d)