Microsoftが提供していてWindows 7では標準搭載になるWindows PowerShellがもっと広まって欲しいこともあって、CodeZineのWindowsのコマンドプロンプトを便利に使うための10のミニテクニックのPowerShell版を書いてみた。
まず、Windows PowerShell 2.0 CTP3をダウンロードして、インストールする。さらに便利に使うためにPowerShell Community ExtensionsからPSCX 1.2をダウンロード・インストールする。
さて、これで準備が整った。因みに以下のテクニックは、Windows XP、Vista、Windows 7のどのOSでも使えると思う(ただし、確認したのはXPのみ)。
コマンドプロンプトからエクスプローラに移動する
以下のように起動するだけ。
ii .
エクスプローラからコマンドプロンプトに移動する
これは標準では難しいと思う。自分はエクスプローラの使い勝手には非常に不満を持っているので、ずいぶん前からWindowsではFileVisorを使っている。FileVisorであれば以下のコマンドをホットキーに登録しておくことで、現在のディレクトリをカレントディレクトリとして一発でPowerShellを開くことができる。
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -NoExit -Command Set-Location $P
カレントディレクトリを記憶し、あとで戻ってくる
これはそのまま、pushd .とpopdが使える。
2つのディレクトリを行ったり来たりする
これもほとんど一緒。
doskey /exename=powershell.exe d1=cd $pwd
一時的にネットワークドライブを割り当てる必要はない
PowerShellではcdでそのままネットワークをまたげるので必要ないと思う。
cd \\computer1\project1\program1
処理結果をクリップボードにコピーする
ocb (Out-Clipboard)を使う。
dir | ocb tree | ocb
因みに、gcb (Get-Clipboard)を使うことで、PowerShell上に貼り付けもできる。
gcb
ずれたインデントを修正する
これもあまり変わらない。
more.com /t4 hello.c
ページごとに止めずに、一気に出力する。
more.com /t4 hello.c | echo
簡単な計算をする
setコマンドは使う必要はなく、そのまま計算させるだけ。
10-20+30 20
(10+20)*30/50 18
0xFF 255
因みに、小数も扱える。また、10進→16進変換は以下のようにすればできる。
"{0:X}" -f 255 FF
ファイルのタイムスタンプを変更する
UNIXのtouchコマンドと全く同じで以下のようにする。
touch file.ext
因みに、以下のようにもできる。
dir file.ext | % { $_.lastwritetime = get-date }
コマンドプロンプトの色やサイズを調整する
背景色を変える。
$host.ui.rawui.backgroundcolor = "blue"
画面の大きさを幅120桁、高さ50行に変える。
$host.ui.rawui.windowsize = new-object system.management.automation.host.size(120, 50)
画面のバッファを幅120桁、高さ3000行に変える。
$host.ui.rawui.buffersize = new-object system.management.automation.host.size(120, 3000)
おわりに
これを機にPowerShellが流行るといいなぁ。Windows 7では標準で付いてくるしね。
まず、Windows PowerShell 2.0 CTP3をダウンロードして、インストールする。さらに便利に使うためにPowerShell Community ExtensionsからPSCX 1.2をダウンロード・インストールする。
さて、これで準備が整った。因みに以下のテクニックは、Windows XP、Vista、Windows 7のどのOSでも使えると思う(ただし、確認したのはXPのみ)。
コマンドプロンプトからエクスプローラに移動する
以下のように起動するだけ。
ii .
エクスプローラからコマンドプロンプトに移動する
これは標準では難しいと思う。自分はエクスプローラの使い勝手には非常に不満を持っているので、ずいぶん前からWindowsではFileVisorを使っている。FileVisorであれば以下のコマンドをホットキーに登録しておくことで、現在のディレクトリをカレントディレクトリとして一発でPowerShellを開くことができる。
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -NoExit -Command Set-Location $P
カレントディレクトリを記憶し、あとで戻ってくる
これはそのまま、pushd .とpopdが使える。
2つのディレクトリを行ったり来たりする
これもほとんど一緒。
doskey /exename=powershell.exe d1=cd $pwd
一時的にネットワークドライブを割り当てる必要はない
PowerShellではcdでそのままネットワークをまたげるので必要ないと思う。
cd \\computer1\project1\program1
処理結果をクリップボードにコピーする
ocb (Out-Clipboard)を使う。
dir | ocb tree | ocb
因みに、gcb (Get-Clipboard)を使うことで、PowerShell上に貼り付けもできる。
gcb
ずれたインデントを修正する
これもあまり変わらない。
more.com /t4 hello.c
ページごとに止めずに、一気に出力する。
more.com /t4 hello.c | echo
簡単な計算をする
setコマンドは使う必要はなく、そのまま計算させるだけ。
10-20+30 20
(10+20)*30/50 18
0xFF 255
因みに、小数も扱える。また、10進→16進変換は以下のようにすればできる。
"{0:X}" -f 255 FF
ファイルのタイムスタンプを変更する
UNIXのtouchコマンドと全く同じで以下のようにする。
touch file.ext
因みに、以下のようにもできる。
dir file.ext | % { $_.lastwritetime = get-date }
コマンドプロンプトの色やサイズを調整する
背景色を変える。
$host.ui.rawui.backgroundcolor = "blue"
画面の大きさを幅120桁、高さ50行に変える。
$host.ui.rawui.windowsize = new-object system.management.automation.host.size(120, 50)
画面のバッファを幅120桁、高さ3000行に変える。
$host.ui.rawui.buffersize = new-object system.management.automation.host.size(120, 3000)
おわりに
これを機にPowerShellが流行るといいなぁ。Windows 7では標準で付いてくるしね。
コメント