[登録されているタグ]

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

PowerShellで一時的に移動する|Push-Locationの使い方

📝 はじめに

PowerShellで作業していると、
「一時的に別のフォルダへ移動したい」
「作業が終わったら、元の場所に戻りたい」
と思うことはありませんか?

そんなときに便利なのが
Push-Location です。
現在の場所を記憶したまま別のディレクトリへ移動できるため、
スクリプトの安全性と可読性を高めることができます。

こんな場面で便利

  • 一時的に別フォルダで作業したい
  • 作業後に確実に元の場所へ戻りたい
  • スクリプト内で移動履歴を管理したい

✅ このコマンドでできること(要点)

  • 現在の作業ディレクトリをスタックに保存できる
  • 別のディレクトリへ安全に移動できる
  • Pop-Location で元の場所へ戻れる
  • ネストした移動にも対応できる

✅ Push-Location でできること

Push-Location は、
現在の作業ディレクトリをスタック(履歴)に保存しつつ、
指定したディレクトリへ移動するコマンドです。

そのため、作業が終わったあとに
Pop-Location を使えば、
確実に元の場所へ戻ることができます。

考え方としては「しおりを挟んで別の場所へ行く」イメージです。

🧩 基本構文

Push-Location -Path "移動先のパス"

-Path は省略可能で、
移動先のパスだけを指定しても動作します。

▶ 基本的な使い方(まずこれだけ)

🔹 一時的に別フォルダへ移動する

Push-Location C:\Temp
Get-Location

一時的に C:\Temp へ移動します。
このパスが表示されていれば問題ありません。

🔹 元の場所へ戻る

Pop-Location
Get-Location

Push-Location 実行前の場所に戻ります。
正しく元のパスが表示されていれば正常です。

🛠 よく使われる指定例

🔹 複数回 Push する

Push-Location C:\Temp
Push-Location C:\Windows

複数回 Push すると、移動履歴がスタックとして積み重なります。

🔹 複数回 Pop して戻る

Pop-Location
Pop-Location

Push した回数分だけ、順番に元の場所へ戻ります。

💼 実務でよく使う使用例(応用)

🔹 スクリプト内で作業場所を一時変更

Push-Location "C:\Work"
Get-ChildItem
Pop-Location

🔹 エラーがあっても戻る構成

Push-Location "C:\Temp"
try {
    Get-ChildItem
}
finally {
    Pop-Location
}
組み合わせ例

  • Pop-Location とセットで使う
  • Get-Location で現在地確認
  • Get-ChildItem などのファイル操作

🧩 よくある勘違い・つまずきポイント

  • Push-Location だけでは元に戻らない
  • Pop-Location を忘れると場所が変わったままになる
  • スタックはLIFO(後入れ先出し)で戻る
  • 存在しないパスには移動できない
  • スクリプト途中で終了すると戻らないことがある

🔄 cmdとの違いについて

cmd には Pushd / Popd がありますが、
PowerShell の Push-Location /
Pop-Location
オブジェクト指向の環境でも安全に使える点が特徴です。

PowerShellでは、よりスクリプト向けに設計されています。

⚠ エラー・うまく動かないときの確認ポイント

  • 指定したパスが存在しているか
  • Pop-Location を呼び忘れていないか
  • 例外発生時に戻る処理を書いているか
  • スタックが想定どおり積まれているか

🧠 注意点

Push-Location は非常に便利ですが、
多用すると現在地が分かりにくくなることがあります。
必ず Pop-Location とセットで使い、
スクリプトの最後で元に戻す設計を意識しましょう。

📌 まとめ

  • Push-Location は一時的に作業場所を変更するコマンド
  • 現在地をスタックに保存できるのが最大の特徴
  • Pop-Location と組み合わせて安全に使う
  • 次は Set-Location との使い分けを理解すると便利

🔎 PowerShellコマンドを探す

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

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

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

Generic filters


Generic filters

Generic filters

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