PowerShellにおけるカレントディレクトリは以下の2つが存在する。
- プロンプトに表示されているディレクトリ
- PowerShellのウィンドウを表示するために実行されたpowershell.exe(PowerShellのウィンドウの実体)の作業フォルダー(ディレクトリ)
一般に「カレントディレクトリ」は前者を指すが、コマンドによっては後者が戻り値であったり基準となる場合もあるので注意。
前者を得るにはGet-Locationコマンドレットを、後者を得るにはSystem.IO名前空間のDirectoryクラスのGetCurrentDirectoryメソッドを使う。 前者のカレントディレクトリを変更するコマンドレットはSet-Location、後者は[IO.Directory]::SetCurrentDirectory("×××")である。
以下はスタートメニューの「Windows PowerShell」→「Windows PowerShell」から起動した状態による動作例。スタートメニューから起動すると、通常powershell.exeはホームドライブのホームパス(「C:\Users\○○○」、○○○はアカウント名)をカレントディレクトリにして起動する。
PS C:\Users\○○○> Get-Location Path ---- C:\Users\○○○ PS C:\Users\○○○> [IO.Directory]::GetCurrentDirectory() C:\Users\○○○ PS C:\Users\○○○> Set-Location C:\Windows\Fonts PS C:\Windows\Fonts> Get-Location Path ---- C:\Windows\Fonts PS C:\Windows\Fonts> [IO.Directory]::GetCurrentDirectory() C:\Users\○○○ PS C:\Windows\Fonts> Set-Location D:\ PS D:\> Get-Location Path ---- D:\ PS D:\> [IO.Directory]::GetCurrentDirectory() C:\Users\○○○ PS D:\> [IO.Directory]::SetCurrentDirectory("C:\Windows\Help") PS D:\> Get-Location Path ---- D:\ PS D:\> [IO.Directory]::GetCurrentDirectory() C:\Windows\Help