2010年12月1日水曜日

◆長いパスの指定を簡単にする(New-PsDrive)

スクリプトを書いていてデスクトップのパスを使いたいことがよくある。
そのたびに、「C:\Users\minminnana\Desktop」とか「C:\Documents and Settings\minminnana\デスクトップ」とか打ち込むのは非常に面倒だ。
そこでデスクトップのパスをPsDriveにしてあげると非常に簡単にアクセスできる。<!-

001
002
003
004
005
006
007
008
009

#デスクトップにWドライブを割り当てる。
$parm =
 @{ 
  name 
= "w"
 
  psprovider 
= "FileSystem"
 
  root 
= "d:\Desktop"
 
} 


New-PSDrive @parm | Out-Null 
Remove-Variable parm
<!-

これをProfileに追加しておけば次からは「w:」でデスクトップにアクセス可能になる。
ドライブ名は必ずしも1文字でなくてもよい。deskとかにすれば、desk: でアクセスできる。

注意点として、Powereshellの世界はこれでOKなのだが他の世界ではこのドライブは通用しない。
例えば.NETのクラスにパスを引数で渡す場合などには使用できない。
正式なパスを指定するか、Convert-Pathコマンドレットで変換して渡す必要がある。

001
002
003
004
005

# encoding設定
$encoding = [Text.Encoding]::
default
  

# テキスト読み込み
$sr = new-Object IO.StreamReader((Convert-Path w:pcname_SJIS.txt),$encoding)

0 件のコメント:

コメントを投稿