Windows TIPS
[User Interface]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

pushd/popdでフォルダを移動する

デジタルアドバンテージ 打越 浩幸
2006/09/16
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
cdコマンドで移動すると履歴が残らず、元のフォルダへ戻るのが面倒である。
pushdコマンドで移動すると、履歴がスタックに残り、popdコマンドで簡単に戻ってくることができる。
引数なしでpushdコマンドを実行すると、履歴が表示される。
 
解説

 コマンド・プロンプト上で作業をする場合、あちこちのフォルダへ移動しながらファイルを操作したり、コマンドを実行したりすることが多い。Windows OSに限らず、コマンドや設定ファイル、ログ・ファイルなどは複数のフォルダに分かれて置かれているため、このような移動は避けられない。もしフォルダを移動せずに作業しようとすると、すべてのファイル・パスをフルパスで指定しなければならず、とても煩わしくなるからだ。

cdではなく、pushdコマンドで移動する

 フォルダを移動する場合、コマンド・プロンプトでは「cd」コマンドを利用する。引数に移動したい先のフォルダ名を指定することにより、カレント・フォルダ(UNIX流に言えばカレント・ディレクトリ)が、指定されたフォルダに変わる(移動する)。

 だがcdで移動する場合、元のフォルダへ戻る簡単な方法がない。別のフォルダへ移動して作業し、その後また元のフォルダへ戻って作業を続けるというのはよくある状況だが、cdを利用する場合、元のフォルダへ戻るには、元の場所を憶えておいて、「cd 元の場所」というコマンドを実行しなければならない。

 このような場合はcdの代わりにpushd(プッシュ・ディレクトリ)コマンドを利用するとよい。使い方はcdコマンドと同じく、「pushd 移動先」とすればよい。これを実行すると、cdコマンドと同様に、カレント・フォルダが指定されたフォルダになる。しかし移動の直前に、現在のカレント・フォルダの情報が「ディレクトリ・スタック」と呼ばれる(cmd.exeの)内部的なスタックに積まれる。引数なしでpushdを実行すると、このスタックに積まれているエントリ(カレント・フォルダの履歴)の一覧が表示される。

popdで元のフォルダへ戻る

 pushdでスタックに積まれたカレント・フォルダの履歴情報は、popd(ポップ・ディレクトリ)コマンドで1つずつ取り出し、元の場所へ戻ることができる。popdコマンドには引数はなく、単にpopdというコマンドを実行すればよい。すると、カレント・フォルダが、pushdで保存されていた場所へ戻る。pushdの結果はスタックになっているので、popdを連続して実行すれば、順番に元のフォルダへ戻ることができる。ただし最初の場所まで戻ると(ディレクトリ・スタックが空だと)、popdしてもカレント・フォルダは変化しない。

C:\Documents and Settings\Administrator>cd …最初の場所は?
C:\Documents and Settings\Administrator

C:\Documents and Settings\Administrator>pushd c:\ …c:\へ移動

C:\>pushd WINDOWS …C:\WINDOWSへ移動

C:\WINDOWS>pushd system32 …C:\WINDOWS\system32へ移動

C:\WINDOWS\system32>pushd "C:\Program Files\Microsoft Office" …C:\Program Files\Microsoft Officeへ移動

C:\Program Files\Microsoft Office>pushd f:\PRJ\Program …F:\PRJ\Programへ移動

F:\PRJ\Program>pushd …pushdの履歴
C:\Program Files\Microsoft Office …スタックの一番上
C:\WINDOWS\system32
C:\WINDOWS
C:\
C:\Documents and Settings\Administrator …スタックの一番下

F:\PRJ\Program>popd …(直前の)元のフォルダへ復帰

C:\Program Files\Microsoft Office>popd …元のフォルダへ復帰

C:\WINDOWS\system32>popd …元のフォルダへ復帰

C:\WINDOWS>popd …元のフォルダへ復帰

C:\>popd …元のフォルダへ復帰

C:\Documents and Settings\Administrator>popd …元のフォルダへ復帰

C:\Documents and Settings\Administrator> …これ以上戻らない

 このように、pushd/popdを使えば、元のフォルダへ簡単に戻れるし、同一ドライブ上だけでなく、別のドライブ上のカレント・フォルダへ移動したり、そこから戻ったりできる。

 なおUNIXなどでは、ディレクトリ・スタックの先頭の2つのエントリを交換する機能があるが(現在のカレント・フォルダと、1つ前のカレント・フォルダを交換する。何度も繰り返すと、それらの間で素早く、行ったり来たりできる)、Windows OSのpushdにはそのような機能はない。引数なしで実行すると、ディレクトリ・スタックの内容が表示される。

pushdでUNCを指定する

 pushdの引数として、\\server1\usr\user01\commandのようなUNCパスを指定すると、Windows OSでは、適当な空きドライブに指定されたドライブ文字をマップし、そのドライブに移動してカレント・フォルダを設定する、という機能がある。「net use * \\server1\usr」「pushd \user01\command」というコマンドを連続で実行したのとほぼ同じ効果がある。この場合、popdを実行すると、元のフォルダへ戻るだけでなく、ドライブのマップも解除される。End of Article

C:\>pushd \\server1\usr\user01\command …UNCでpushdする

Z:\user01\command> …移動先。Z:ドライブにマップされている
Z:\user01\command>net use …マップの状況
新しい接続は記憶されません。

ステータス  ローカル名 リモート名               ネットワーク名
 ------------------------------------------------------------
OK           Z:        \\Server1\usr            Microsoft Windows Network
コマンドは正常に終了しました。

Z:\user01\command>popd …popdで戻る

C:\> …元の場所
 
関連記事(Windows Server Insider)
Windows TIPS:これだけは覚えておきたい、コマンド・プロンプトの使い方
Windows TIPS:コマンド・プロンプトで入力補完機能を使う方法
連載:コマンドライン徹底活用
 
この記事と関連性の高い別のWindows TIPS
エクスプローラでカレント・フォルダを選択してコマンド・プロンプトを開く
これだけは覚えておきたい、コマンド・プロンプトの使い方
エクスプローラでファイルの移動/コピーを簡単、確実に行う方法
パッチ適用時にOfficeのインストールCDを要求されないようにする方法(Office 2000/Office XP編)
コマンド・プロンプトでファイル共有を管理する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH