コマンドプロンプトでカレントディレクトリを移動するにはcdを使う。

cd /d d:\tempのように/dオプションを使えば別のドライブに移動できる。

今まで当たり前のようにディレクトリの移動にはcdを使ってきたが、pushdというcdより素敵なコマンドを発見したので使ってみる。(Windows7)

pushdの利点

pushdコマンドはcdと同様にカレントディレクトリを移動できるが以下の利点がある。

  • pushdを実行した後、popdで元のディレクトリに戻れる
  • 現在のドライブとは別のドライブに移動できる
  • \server\hoge\fugaのようなUNCパスに移動できる

popdで元のディレクトリに戻る

pushdでカレントディレクトリを移動すると移動前のカレントディレクトリがディレクトリスタックに保存されていく。
pushdを引数なしで実行すると現在のディレクトリスタックを表示する。
popdを実行すると直前に保存したパスに移動され、そのパスはディレクトリスタックから削除される。

C:\temp>pushd C:\
C:\>pushd Windows
C:\Windows>pushd Logs
# 引数なしのpushdでディレクトリスタックを表示
C:\Windows\Logs>pushd
C:\Windows  
C:\
C:\temp
# popdで移動前のディレクトリに戻る
C:\Windows\Logs>popd
C:\Windows>popd
C:\>popd
C:\temp>

別のドライブに移動

C:\temp>pushd E:\test
E:\test>

UNCパスに移動

UNCパスをpushdすると空きドライブに自動的に割り当てられ、移動できる。 popdで元のディレクトリに戻るとドライブの割り当ては解除される。

E:\test>pushd \\server1\UserData\UserData\test
Z:\test>
Z:\test>net use
ステータス  ローカル名 リモート名                ネットワーク名

--------------------------------------------------------------------------
OK           Z:        \\server1\UserData     Microsoft Windows Network
コマンドは正常に終了しました。                                                

Z:\test>popd
E:\test>net use
新しい接続は記憶されます。

一覧にエントリが存在しません。

pushdでZドライブが割り当られ、popdで割り当ては解除された。