もくじ
📝 はじめに
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コマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 一時的に作業場所を変更したい
- 元のディレクトリに戻りたい
