PowerShell のスクリプト中で普通に cd (Set-Location) を使うことはあると思います。
だがしかし、実は、cd 後に外部コマンドを実行すると反映していない。
Set-Location ではPowerShell環境のカレントLocationを変更しているだけのようです。
PowerShellではドライブとしてファイルシステム以外も統合して扱うことに起因しているんだと思われますが、きっとだれもがハマルと思います。
実行環境のファイルシステム上のカレントも変更するように以下のようなfunctionを定義して代用しています。
SetCurrentDirectory.ps1
function Set-CurrentDirectory ($path) {
Set-Location $path
if ((Get-Location).Provider.Name -eq 'FileSystem') {
[IO.Directory]::SetCurrentDirectory((Get-Location).ProviderPath)
}
}
とりあえずfunction定義だけで、エラーチェックもなにもなしですが、これをもっとブラッシュアップしてコマンドレットにして、cd のエイリアスを置き換えると便利かもしれません。
cdのエイリアスが無ければもう少し混乱が避けられたのでは......。