rcmdnk's blog

Windows PowerShell逆引きハンドブック

PowerShellでもBashの.bashrcの様なファイルを使った 初期設定をすることが出来るので ちょっと書いてみました。

設定ファイル

個人設定ファイルは

C:\Users\<USER>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

になります。 これは$PROFILEという値に入っています。

最初はこのファイルは無いと思うので自分で作ります。 (PowerShellを一度も立ち上げたことがなければフォルダも無いかもしれません。 ない場合は取り敢えず一度PowerShellを立ち上げて見てみる。)

ここにエイリアスとかパスとかの設定をします。

Microsoft.PowerShell_profile.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# PATH

## Vim
$prog_dir = @(${ENV:ProgramFiles}, ${ENV:ProgramFiles(x86)})
foreach ($d in $prog_dir) {
  $vim_dir = $d + '\vim\vim74'
  if (Test-Path ($vim_dir + '\vim.exe')){
    $path = [regex]::escape($vim_dir)
    if(-not ($ENV:PATH -match $path)){
      $ENV:PATH += ";" + $vim_dir
    }
  }
}

# Alias
Set-Alias uniq Get-Unique

# Functions

function tail ([string] $file, [int] $n=10, [switch] $f) {
  if ($f){
    Get-Content -Wait -Tail $n $file
  } else {
    Get-Content -Tail $n $file
  }
}

こんな感じ。

PATH

まず、PATHにVimのパスを加えます。

プログラムの入っているパスも$ENVに上の様な値で入っています。 64bit版(もしくは共通)と32bit版のフォルダがあるので その両方をチェック。

配列は@()で定義します。 (他の言語みたいに[]じゃないので注意。) 配列はforeachを使って上の様に簡単に回せます。

> Install-Package Vim

とかで入るVimはプログラムフォルダの下でvim\vim74\vim.exeにあります。

これを探してあったらパスに加えるように。

PowerShellではターミナルでそのままファイルを編集する簡単な方法がありませんが、 Vimを入れれば普通にターミナルからVimで編集できる様になります。

それ以前は

> notepad file

みたいにしてメモ帳で開いて編集することになります。

if文の条件として真偽を返すコマンドを直接入れてその結果で判断することが出来ます。

ファイルやディレクトリが存在するかどうかは Test-Pathを使って簡単に出来ます。

$path = [regex]::escape($vim_dir)
if(-not ($ENV:PATH -match $path)){

の部分ですが、\が入ってるパスをそのまま渡すと、

Malformed \p{X} character escape.

と言ったエラーが出てしまいます。

なのでこれをエスケープしてあげる必要がありますが、これは 上の様にregexescapeを使えば簡単に出来ます。 この出力は

C:\\Program Files\\...

みたいにエスケープしてくれます。

このパスが$ENV:PATHに入ってなかったら、ということで-notを使用。 この時、後ろのコマンドは()で囲まないと上手く行きません。

パスは;で区切られてるのでそれを一つ入れてVimへのパスを追加しています。

Alias

Aliasは適当に。

Fnctions

Functionsですが、 ここではtailをLinuxっぽく使える様にしてみました。

引数のswitchは、-fを入れれば正に、いれなければ偽になる$fという変数を作ります。

これで

> tail file

とすれば最後の10行が見れるし、

> tail -f -n 2 file

とすれば2行表示し、さらに追加を待って表示し続ける様になります。

この時、-n2の間は必ず空けないとダメです。

設定ファイルを読み込む

> source $PROFILE

または

> . $PROFILE

一度書いておけば次回からは起動時に自動で読み込まれます。

Sponsored Links
Sponsored Links

« apt-cygのオリジナルレポジトリ復活 Google Chromeのユーザー切り替えは数が多いと切り替えれない場合がある »

}