Windowsのコマンドプロンプトでディレクトリを移動しようとするとき、よく目にするのが「cd」と「pushd」の2つのコマンドです。
でも、使い方を間違えると「戻れなくなった!」「思ってた場所じゃなかった!」なんてことも…。
初心者の方なら、きっと一度は経験があるのではないでしょうか?
この記事では、cdとpushdの違いと、それぞれの効果的な使い分け方を、具体的な例と一緒にやさしく解説していきます。
これを読めば、ディレクトリ移動で迷うことがなくなりますよ!
「cd」と「pushd」それぞれの基本動作とは?

まず、この2つのコマンドがそれぞれ何をするものなのかを理解しましょう。
cd(Change Directory)の基本
cd
は「Change Directory」の略で、単純にディレクトリを移動するコマンドです。
特徴:
- フォルダ移動後、前の場所を記録しない
- 一方向の移動(行きっぱなし)
- 最もシンプルで軽量
基本の使い方:
cd C:\Users\YourName\Documents
pushd(Push Directory)の基本
pushd
は「Push Directory」の略で、移動先を「履歴スタック」に記録してから移動するコマンドです。
特徴:
- 移動前の場所を「スタック」に保存
popd
コマンドで元のディレクトリに戻れる- 一時的な移動に便利
基本の使い方:
pushd D:\Project
# 作業後...
popd # 元の場所に戻る
スタックって何?
「スタック」とは、お皿を積み重ねるようなデータ構造です。最後に入れたものが最初に出てくる仕組み(Last In, First Out)になっています。
[元の場所3] ← popd で最初に戻る
[元の場所2]
[元の場所1] ← pushd で最初に入れた場所
この章のまとめ
cd
:移動のみ(シンプル)pushd
:移動 + 元の場所を覚えておく(高機能)
使い方に合わせて選ぶのがコツです。
次は、具体的な動作の違いを実際のコマンド例で見ていきましょう。
「cd」と「pushd」の具体的な使い方と挙動の違い

実際のコマンド例を使って、2つの違いを確認してみましょう。
cdの動作例
C:\Users\Me> cd C:\Windows\System32
C:\Windows\System32>
何が起こった?
- 現在の作業フォルダが
C:\Windows\System32
に変更 - 前にいた場所(
C:\Users\Me
)の情報は失われる - 戻りたい場合は手動で
cd C:\Users\Me
と入力する必要がある
pushdとpopdの動作例
C:\Users\Me> pushd D:\Work
D:\Work>
# 何か作業を行う...
D:\Work> popd
C:\Users\Me>
何が起こった?
pushd
でD:\Work
に移動- 同時に元の場所(
C:\Users\Me
)がスタックに保存 popd
コマンド一つで元の場所に戻れる
ドライブ移動での大きな違い
cdの場合(面倒なパターン)
C:\Users\Me> cd D:\Work
C:\Users\Me> # あれ?移動できてない...
C:\Users\Me> D:
D:\>
D:\> cd Work
D:\Work>
cdでは、別のドライブに移動するときは2つの手順が必要です。
pushdの場合(便利なパターン)
C:\Users\Me> pushd D:\Work
D:\Work> # 一発で移動完了!
pushdなら、別ドライブでも自動的に切り替わります。これは大きなメリットですね。
複数回の移動例
C:\Users\Me> pushd D:\Project1
D:\Project1> pushd E:\Backup
E:\Backup> pushd F:\Tools
F:\Tools>
# 順番に戻っていく
F:\Tools> popd
E:\Backup> popd
D:\Project1> popd
C:\Users\Me> # 最初の場所に戻った
この章のまとめ
pushd
は一時的な移動に便利(戻るのが簡単)cd
は一方向の移動に向いている(軽量)- ドライブ移動では
pushd
の方が断然楽
次は、どんな場面でどちらを使うべきかを整理していきましょう。
cdとpushdの「使い分けポイント」
どちらのコマンドを使うべきか、具体的な場面で考えてみましょう。
使い分けの基本ルール
状況 | 使うべきコマンド | 理由 |
---|---|---|
一時的に他のフォルダで作業 | pushd | 元の場所に戻るのが簡単 |
作業後に戻る必要がない移動 | cd | 最もシンプルで軽量 |
バッチファイルで複数移動 | pushd/popd | 履歴管理でミスが減る |
ネットワークフォルダへの一時アクセス | pushd | 自動マウント&解除 |
具体的な使用例
1. 一時的にファイルをコピーしたい場合
# pushd を使う場合(推奨)
C:\Users\Me\Documents> pushd D:\Backup
D:\Backup> copy *.txt .
D:\Backup> popd
C:\Users\Me\Documents> # 元の場所に戻って作業続行
# cd を使う場合(面倒)
C:\Users\Me\Documents> cd D:\Backup
D:\Backup> copy C:\Users\Me\Documents\*.txt .
D:\Backup> cd C:\Users\Me\Documents
C:\Users\Me\Documents>
2. 設定ファイルを一時的に編集したい場合
C:\MyApp> pushd C:\Windows\System32
C:\Windows\System32> notepad hosts
# ファイル編集後...
C:\Windows\System32> popd
C:\MyApp> # 元の作業場所に戻る
3. 開発作業での使い分け
# プロジェクトのルートから一時的にログフォルダを確認
C:\Project\MyApp> pushd logs
C:\Project\MyApp\logs> dir *.log
C:\Project\MyApp\logs> popd
C:\Project\MyApp> # すぐに開発作業に戻れる
バッチファイルでの活用例
pushdを使った安全なバッチファイル
@echo off
echo バックアップを開始します...
rem 元の場所を記録してバックアップフォルダへ移動
pushd D:\Backup
rem バックアップ処理
xcopy C:\ImportantData\*.* . /E /Y
rem 元の場所に確実に戻る
popd
echo バックアップ完了!元の場所に戻りました。
pause
cdだけを使った場合の問題
@echo off
cd D:\Backup
xcopy C:\ImportantData\*.* . /E /Y
# あれ?元の場所に戻るのを忘れた...
# 次の処理が思った場所で実行されない可能性
ネットワークフォルダでの特殊な使い方
# ネットワークフォルダを一時的にドライブとしてマウント
C:\> pushd \\server\shared
Z:\> # 自動的にドライブ文字が割り当てられる
# 作業後、マウントを自動解除
Z:\> popd
C:\> # ネットワークドライブも自動的に切断される
この章のまとめ 一時的な処理 → pushd / 恒久的な移動 → cdと覚えると使い分けやすいです。迷ったときは「戻る必要があるか?」を考えてみてください。
次は、知っておくと便利な注意点や小技を紹介します。
「cd」と「pushd」の注意点と便利な小技

実際に使う上で知っておきたい注意点と、作業効率を上げる小技を紹介します。
cdの制限と対処法
1. ドライブ移動の制限
問題:
C:\> cd D:\Data
C:\> # 移動できてない!
解決方法:
# 方法1:2段階で移動
C:\> D:
D:\> cd Data
# 方法2:/d オプションを使用
C:\> cd /d D:\Data
D:\Data> # 一発で移動完了
/d
オプションを使えば、pushdと同じようにドライブも含めて移動できます。
2. スペースを含むパスの扱い
# ダブルクォーテーションで囲む
cd "C:\Program Files\My Application"
# または8.3形式を使用
cd C:\PROGRA~1\MYAPPL~1
pushdの便利な機能
1. 複数のディレクトリ履歴管理
# dirsコマンドでスタックの中身を確認
C:\> pushd D:\Work
D:\Work> pushd E:\Backup
E:\Backup> dirs
E:\Backup C:\
# 番号を指定してジャンプ
E:\Backup> pushd +1
C:\>
2. ネットワークパスの自動マウント
# UNCパス(ネットワークパス)を一時的にドライブとして使用
C:\> pushd \\192.168.1.100\shared
Z:\> # 自動的にドライブ文字が割り当てられる
# 作業完了後、自動的にマウント解除
Z:\> popd
C:\> # ネットワークドライブも自動削除
3. 引数なしのpushdの動作
C:\Users> pushd D:\Work
D:\Work> pushd # 引数なし
C:\Users> # 最後の2つの場所が入れ替わる
実用的な小技
1. 現在のディレクトリをクリップボードにコピー
# 現在のパスをクリップボードにコピー
echo %CD% | clip
# または
cd | clip
2. エクスプローラーと連携
# 現在のディレクトリをエクスプローラーで開く
explorer .
# 親ディレクトリを開く
explorer ..
# 指定したパスを開く
explorer D:\MyFolder
3. バッチファイルでの高度な使い方
@echo off
rem 現在のディレクトリを保存
set ORIGINAL_DIR=%CD%
rem 複数の場所で作業
pushd C:\Logs
echo ログファイル処理中...
rem 何らかの処理
popd
pushd D:\Backup
echo バックアップ処理中...
rem 何らかの処理
popd
rem 最終的に元の場所に戻る
cd /d "%ORIGINAL_DIR%"
echo すべての処理が完了しました
よくあるミスと対策
1. popdを忘れるミス
# 問題のあるパターン
pushd D:\Work
# 作業...
# popdを忘れて別の場所へcdしてしまう
cd C:\Other
# 解決策:バッチファイルでは必ずペアで使う
pushd D:\Work
rem 作業処理
popd # 忘れずに戻る
2. スタックの深度制限
# あまりにも多くのpushdを実行すると...
pushd A:\
pushd B:\
pushd C:\
# ... (たくさん)
# スタックがいっぱいになってエラーの可能性
3. ネットワーク接続エラー
# ネットワークが切断された場合の対処
pushd \\server\share # エラーになる可能性
if errorlevel 1 (
echo ネットワーク接続に失敗しました
pause
exit /b 1
)
この章のまとめ
pushd
はドライブ自動切替・ネットワーク対応も可能な高機能版cd
は軽量で最小限の移動用、/d
オプションで機能拡張- バッチファイルでは必ず
pushd
とpopd
をペアで使う
まとめ
Windowsのコマンドプロンプトにおいて、cdとpushdは「移動」に特化した基本中の基本コマンドです。
使い分けのコツを押さえれば、作業効率が大きくアップします!
この記事で学んだポイント
基本的な違い
コマンド | 特徴 | 元の場所に戻れる? | 複数ドライブ対応 |
---|---|---|---|
cd | 単純なフォルダ移動 | (手動で戻る) | (/d オプションで可能) |
pushd | 移動+元の場所の記録 | (popd で自動) | (自動切替) |
使い分けの基準
- 一時的な作業:
pushd
を使って確実に元の場所に戻る - 永続的な移動:
cd
でシンプルに移動 - バッチファイル:
pushd/popd
でエラーを防ぐ - ネットワークフォルダ:
pushd
で自動マウント
コメント