[登録されているタグ]

[記事公開日]2025/12/18

PowerShellで元に戻る|Pop-Locationの使い方

📝 はじめに

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コマンドを探す

やりたいことからコマンドを探すこともできます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • 元のディレクトリに戻りたい
  • 一時移動を安全に管理したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る