PowerShellで作業していると、
「ちょっと別のフォルダに移動して、作業が終わったら元の場所に戻りたい」
と思うことがありますよね。
そんなときに便利なのが、ディレクトリスタックを使った移動管理ができるPush-Location
コマンドです。
この記事では、Push-Location
の基本的な使い方、対応するPop-Location
とのセット運用、スクリプトでの実践活用まで、初心者でもわかりやすく解説します!
Push-Locationとは?

Push-Location
は、現在の作業ディレクトリ(カレントディレクトリ)を”スタック”に記録し、その後で別のディレクトリに移動するためのPowerShellのコマンドレットです。
つまり:
- 今の場所を覚える(Push)
- 別の場所に移動して作業
Pop-Location
で元に戻る
この流れをスマートに実現できます。
基本的な使い方と実行例

基本構文:
Push-Location パス
実行例:
Push-Location "C:\Windows"
このコマンドを実行すると:
- 現在のディレクトリがスタックに保存される
- 指定した
"C:\Windows"
に移動する
Pop-Locationとのセット利用が基本
Push-Location
で場所を記録して移動したら、必ずPop-Location
で元に戻すのが基本の使い方です。
例:
Push-Location "C:\Logs"
# ここでログファイル処理などを実行
Pop-Location
これで元のディレクトリに戻れるので、スクリプトの中でのディレクトリ制御が非常に安定します。
スクリプトで役立つ活用例
一時的なフォルダで作業後に戻るスクリプト:
Push-Location
Set-Location "C:\Temp"
# 作業内容
Get-ChildItem | Out-File "log.txt"
Pop-Location
上記のように、作業前の場所を明示的に記録・復元することで、スクリプトの可読性と信頼性がアップします。
ディレクトリスタックを確認・管理する方法

PowerShellでは、スタックに記録されたディレクトリの履歴は Get-Location -Stack
で確認できます。
Get-Location -Stack
スタックの中身をクリアしたい場合は:
# PowerShell 5.1以降では以下の方法でスタックをクリアできます
while ((Get-Location -Stack).Count -gt 0) {
Pop-Location
}
自作の関数や大規模なスクリプトでスタックが溜まりすぎるのを防ぎたいときに便利です。
よくあるエラーとその対策
エラー例 | 原因・対処法 |
---|---|
Cannot find path | 指定したパスが存在しない。Test-Path で事前確認しましょう。 |
Pop-Location で戻らない | Push-Location を実行していないか、複数回使用してスタックが崩れている可能性があります。 |
スタックが空です | Push-Location の後にエラーで処理が中断された可能性あり。try/finally で確実に戻す処理を入れましょう。 |
まとめ:移動履歴を使いこなして作業を効率化!
Push-Location
は、一時的に作業場所を変更したいときに非常に便利なPowerShellの機能です。
Pop-Location
とセットで使うことで、安全かつ柔軟なディレクトリ移動が可能になります。
ポイントまとめ:
Push-Location
で現在のパスを保存し、別の場所へ移動Pop-Location
で記録した場所へ戻る- スクリプトでの一時的な移動に最適
- スタックの活用で、複数回の移動履歴も管理可能
PowerShellの移動コマンドを使いこなして、スクリプト作成や手動作業をもっと快適にしていきましょう!
コメント