こんなことを知りたい人へ向けて書いています
- Windowsバッチファイルでフォルダ(ディレクトリ)の移動方法を知りたい方
- バッチファイルがあるフォルダへ戻ってくる方法を探している方
目次
「cd」コマンドの使い方
Windowsバッチファイルでフォルダ(ディレクトリ)間の移動には「cd」コマンドを使用します。「cd」コマンドは「change directory(チェンジディレクトリ)」の略です。使用方法は以下のようになります。※「フォルダ」のことを「ディレクトリ」とも言います。
1 |
cd [移動先フォルダのパス] |
[移動先フォルダのパス]には移動したいフォルダのパスを指定します。パスは絶対パス、相対パスどちらで指定しても構いません。パスについては「絶対パスと相対パス -コラム-」に詳しい解説を用意しましたので、そちらをご覧ください。
ちなみに、「cd」コマンドの代わりに「chdir」コマンドを使っても同様の動作をします。
1 |
chdir [移動先フォルダのパス] |
一般的は短い方の「cd」コマンドが楽でいいという理由から、「cd」の方がよく使われているようです。
以下のバッチファイルは現在のフォルダ内にある「test」フォルダへ「cd」コマンドを使って移動する例「change_directory.bat」です。
1 2 3 4 |
@echo off rem 「test」フォルダ(ディレクトリ)への移動 cd test |
このバッチファイルを実行したとき、ちゃんと「test」フォルダがあれば、実行結果は以下の図のようになります。
実行後、「test」フォルダへ移動していることが分かります。
一方、「test」フォルダが存在しない場合に、このバッチファイルを実行すると、
のように「指定されたパスが見つかりません。」という警告メッセージが表示されます。実行後もどこにもフォルダを移動していないことが分かります。
2つ以上先のフォルダ(ディレクトリ)へ移動する
次に、2つ先のフォルダへ移動する場合です。先ほどの「test」フォルダの中にさらに「sub_test」フォルダが存在していたとします。この「sub_test」フォルダへ移動するには、以下のバッチファイル「change_2directory.bat」のようになります。
1 2 3 4 |
@echo off rem 「test」内の「sub_test」フォルダ(ディレクトリ)へ移動 cd test\sub_test |
※「\」は「\」に置き換えて読んで下さい。コードをコピーした場合は自然に置き換わります。
4行目の「cd」コマンドへのパス指定で「test\sub_test」としました。「\」はフォルダ(ディレクトリ)間の区切りを表す文字です。これで、二つ先のフォルダへ一気に移動できます。以下、実行結果です。
3つ以上先のフォルダへ移動する場合も同様です。「\」で区切ったフォルダ名を複数並べるだけです。
1つ下のフォルダ(ディレクトリ)へ移動する
今度は一つ下のフォルダへ移動する方法です。「バッチファイル」フォルダの中に「test」フォルダがあり、現在「test」フォルダの中に居るという状況を考えてみましょう。
ここから一つ下の「バッチファイル」フォルダへ移りたいとしましょう。Windowsバッチファイルでは、一つ下のフォルダを「..\」のように表現します。したがって、一つ下のフォルダへ移動するには、
1 2 3 4 |
@echo off rem 1つ下のフォルダへ移動する cd ..\ |
となります。以下は、このバッチファイル「change_m1directory.bat」を実行した結果です。
「test」フォルダ内でバッチファイルを実行し、実行後は1つ下のフォルダ「バッチファイル」へ移動できていることが分かります。
バッチファイルがあるフォルダ(ディレクトリ)へ戻ってくる方法
少し複雑なバッチファイルプログラムを組んでいるとき、あちこちにフォルダを移動し過ぎて、今自分がどのフォルダへ居るのかが分からなくなってしまうという経験はないでしょうか?
そんな時には、一度実行しているバッチファイルのあるフォルダへ戻ってきて自分の位置をリセットしてしまうことがオススメです。これを実現するには、「cd [パス]」の[パス]部分に実行しているバッチファイルのあるフォルダのパスを指定しないといけないのですが、そんなときに便利なのが「%~dp0」です。
バッチファイル内で「%~dp0」を参照すると、そのバッチファイルがあるフォルダのパスを返してくれます。確認してみましょう。以下のようなバッチファイル「check_mydirectory.bat」を作成して実行します。
1 2 3 4 |
@echo off rem このバッチファイルがあるフォルダのパスを表示 echo このバッチファイルは「%~dp0」にあります。 |
4行目で「%~dp0」をコマンドプロンプト画面に表示させています。実行してみましょう。
「%~dp0」には今実行しているバッチファイルがあるフォルダのパスが入っていることが確認できます。
したがって、「cd」コマンドで使用するには、
1 2 3 4 |
@echo off rem このバッチファイルがあるフォルダに帰ってくる cd %~dp0 |
とすればよいです。これで、今いるフォルダの場所が分からなくなっても直ぐに元の場所に戻って来ることができます。