2つのディレクトリを行ったり来たりする
2つのディレクトリを行ったり来たりするのに、「pushd」は使えません。「popd」の実行により、最後に記憶したディレクトリが忘れ去られてしまうからです。そこで役立つのが、「doskey」によるマクロの定義と、カレントディレクトリを示す環境変数「cd」の利用です。
たとえば、カレントディレクトリが「c:\app」の状態で次のコマンドを入力すると、「c:\app」への移動がマクロ「d1」として記憶されます。
doskey d1=cd /d %cd%
その後、カレントディレクトリが「d:\data」の状態で次のコマンドを入力すると、「d:\data」への移動がマクロ「d2」として記憶されます。
doskey d2=cd /d %cd%
あとは、「d1」「d2」と入力するたびに、双方のディレクトリを行ったり来たりできます。3か所以上のディレクトリの移動についても同様です。
マクロの定義状態は、「doskey /macros」で表示されます。このマクロは一時的なものであり、コマンドプロンプトを閉じると失われます。
一時的にネットワークドライブを割り当てる
自端末内であれば、「cd」コマンドで自由にカレントディレクトリを変更できます。しかし、「\\computer1\project1\program1」といったほかのコンピュータ内のディレクトリに直接「cd」しようとすると、「CMD では UNC パスは現在のディレクトリとしてサポートされません」と表示され、エラーになります。そのため、ほかのコンピュータ上のディレクトリに「cd」するには、あらかじめネットワークドライブを割り当てておかなければなりません。
ネットワークドライブの割り当てには、通常、「net use」コマンドや、エクスプローラの「ネットワークドライブの割り当て」コマンドを使いますが、より簡便な方法として「pushd」があります。
pushd \\computer1\project1\program1
このように「pushd」の後ろにほかのコンピュータ内のディレクトリを記述すると、自動的にネットワークドライブが割り当てられ、そのディレクトリに移動します。
当該ディレクトリで作業後、次のコマンドを入力すると、ネットワークドライブが解除され、元のディレクトリに戻ります。
popd
「cd」だけでなく「pushd」を併用することで、より広い範囲を自由に移動できるようになります。
なお、他のコンピュータにアクセスするには、あらかじめ認証をパスしている必要があります。認証を行うには、たとえば次のように入力して認証のダイアログボックスを表示し、ユーザー名とパスワードを入力してください。
start \\computer1\project1\program1
処理結果をクリップボードにコピーする
コマンドプロンプトでの処理結果をクリップボードにコピーしたい場合、通常、画面上をマウスで範囲選択して「コピー」しますが、「clip」コマンドを使うと便利です。
たとえば「dir」コマンドで出力されるファイルの一覧をクリップボードにコピーするには、パイプを利用して、次のように入力します。
dir | clip
同様に、「tree | clip」とすればディレクトリのツリー構造がクリップボードにコピーされますし、「systeminfo | clip」とすればコンピュータのシステム構成情報がクリップボードにコピーされます。要するに、任意のコマンドの後ろに「| clip」を付けるだけです。
なお、「clip」はWindows XPでは利用できません。
ずれたインデントを修正する
コマンドプロンプトのタブのサイズは、半角8文字です。そのため、半角4文字前提で書かれたC言語のプログラムなどを「type」コマンドで表示すると、レイアウトが崩れてしまいます。このずれは、特別なツールを使わなくても、標準の「more」コマンドで修正できます。
たとえば、「hello.c」をタブサイズ半角4文字で表示するには、次のコマンドを入力します。
more /t4 hello.c
タブのサイズは、「/t2」で半角2文字、「/t3」で半角3文字など、自由に設定できます。
「more」コマンドなので、1ページごとに表示が停止してしまいますが、処理結果をリダイレクトすれば、一気に出力されます。たとえば、コンソール「con」にリダイレクトすると、一時停止することなくすべてが出力されます。
more /t4 hello.c > con
