もくじ
📝 はじめに
PowerShellで作業していて、
「一時的に別のフォルダへ移動したあと、元の場所に戻りたい」
「Push-Location を使ったけれど、どうやって戻るのか分からない」
と感じたことはありませんか?
そんなときに使うのが
Pop-Location です。
Push-Location で保存しておいた作業場所を取り出し、
確実に元のディレクトリへ戻ることができます。
- 一時作業が終わったので元の場所へ戻したい
- スクリプト内で移動前の状態を復元したい
- 例外が起きても確実に元へ戻したい
✅ このコマンドでできること(要点)
- Push-Location で保存した作業場所へ戻れる
- スタックの履歴を1つ取り出して移動できる
- 複数回 Push した移動を順番に戻せる
- スクリプトの安全性を高められる
✅ Pop-Location でできること
Pop-Location は、
ディレクトリスタックに保存されている
直前の作業場所を取り出して移動するコマンドです。
単なる「移動」ではなく、
Push-Location とセットで使うことで
「一時移動 → 元に戻る」という安全な流れを作れます。
考え方としては「しおりを外して元のページに戻る」イメージです。
🧩 基本構文
Pop-Location
引数は不要で、スタックに保存された場所へ戻ります。
▶ 基本的な使い方(まずこれだけ)
🔹 Push-Location から戻る
Push-Location C:\Temp
Get-Location
Pop-Location
Get-Location
最初の Get-Location では C:\Temp、
次の Get-Location では元のパスが表示されていれば問題ありません。
🔹 スタックが空でない場合の動作
Pop-Location
スタックに履歴があれば、その場所へ移動します。
エラーが出なければ正常に戻れています。
🛠 よく使われる指定例
🔹 複数回 Push した場合
Push-Location C:\Temp
Push-Location C:\Windows
Pop-Location
Pop-Location
後に Push した場所から順番に戻ります(LIFO)。
🔹 現在地を確認しながら戻る
Get-Location
Pop-Location
Get-Location
戻る前後でパスを確認すると、挙動が分かりやすくなります。
💼 実務でよく使う使用例(応用)
🔹 finally で必ず元に戻す
Push-Location "C:\Work"
try {
Get-ChildItem
}
finally {
Pop-Location
}
🔹 スクリプト終了時に復元
$start = Get-Location
Push-Location C:\Temp
# 作業
Set-Location $start
- Push-Location と必ずセットで使う
- Get-Location で戻り先を確認
- try / finally で安全に復元
🧩 よくある勘違い・つまずきポイント
- Pop-Location だけでは使えない(Push が必要)
- スタックが空だとエラーになる
- Push した回数以上 Pop できない
- Set-Location とは役割が違う
- スクリプト途中終了で戻らないことがある
🔄 cmdとの違いについて
cmd では popd を使いますが、
PowerShell の Pop-Location は
Push-Location と組み合わせた
より安全な構成が可能です。
PowerShellでは、スタックを意識した制御がしやすくなっています。
⚠ エラー・うまく動かないときの確認ポイント
- 事前に Push-Location を実行しているか
- Pop-Location の回数が多すぎないか
- 例外発生時に戻る処理を書いているか
- スタックの状態を把握しているか
🧠 注意点
Pop-Location は便利ですが、
スタックの状態を意識せずに使うと混乱しやすくなります。
Push / Pop は必ず対で管理することを心がけましょう。
📌 まとめ
- Pop-Location は元の作業ディレクトリへ戻るためのコマンド
- Push-Location とセットで使うのが基本
- スタック構造で安全に移動を管理できる
- 次は try / finally と組み合わせた使い方がおすすめ
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 元のディレクトリに戻りたい
- 一時移動を安全に管理したい
