コマンドプロンプトでファイルやフォルダ操作をする時に重宝するコマンドとバッチファイル
複数あるファイルやフォルダを一気に操作したいケースはよくあります。
そんな時に、ひとつひとつをマウスでクリックして操作するのはハッキリ言って時間の無駄です。
今回は複数のファイルやフォルダを操作したい時に覚えておくと便利なコマンドをご紹介します。
コマンドプロンプトの起動方法はいくつかあります。別記事に書いていますのでそちらもご覧下さい。
目次
アプリケーションを複数起動するバッチファイル
スタートアップに登録してあるプログラム以外に、登録するまでもないけどたまに使うことがあるアプリケーションと言うのはいくつかあります。
デスクトップにショートカットアイコンを置く、またはタスクバーにショートカットを置くと言った方法もありますが、例えばアプリケーションを複数立ち上げたい場合や、ショートカットアイコンをこれ以上増やしたくない場合、事前にバッチファイルに登録しておけば素早く起動できます。
自分の行いたい操作のコマンドをテキストファイルに記述して、コマンドプロンプトで呼び出し実行することができます。
テキストエディタやメモ帳などを開き、例では下のように記述します。
1 2 3 |
start "" "D:\フォルダ名\実行ファイル1.exe" start "" "D:\フォルダ名\実行ファイル2.exe" pause |
ダブルクォーテーションで囲まれた部分に起動したいアプリケーションのパスを書きます。
最後のpauseは一時停止なので省略してもいいです。これを好きな名前のバッチファイルで保存します。記述できたら保存するのですが、保存の際に拡張子を.batに変更して保存します。test.batなど。保存場所はD:\Batと言うようにあらかじめフォルダを作っておけば分かりやすいです。
実際にやってみます。
私のPCのDドライブにあるSumatraPDF.exeをバッチファイルで起動してみます。複数起動の場合も手順は同じです。
まず実行ファイルの正確なパスを確認します。SumatraPDF.exeはDドライブのダウンロードフォルダのSumatraPDF-2.5.2と言うフォルダ内にあります。フォルダを開いてSumatraPDF.exeを選択し右クリックします。すると場所と言う箇所にパスが表示されています。
これをコピーして上で挙げたコマンド通りにメモ帳などに貼り付けます。コマンドの最後に\を入力し、あとは実行ファイル名をコピーしてコマンドの最後に貼り付けます。
これを任意のファイル名で保存しますが、すべてのファイルになっているか確認して拡張子.batで保存します。
保存したバッチファイルをクリックするとSumatraPDFが起動します。
このバッチファイルの利点は、複数のアプリケーションを書くことで同時起動できる点です。「デスクトップアイコンから複数のアプリアイコンをクリックして・・」と言う手間が省けます。
ファイルを指定して実行から呼び出せるようにパスを登録する
上記で作成したバッチファイルを「ファイルを指定して実行」から実行する場合は、バッチファイルを置いてあるパスをシステムに登録する必要があります。
「コントロールパネル」
「システム」
「システムの詳細設定」
「詳細設定」
「環境変数」
と進みます。(システム詳細を開きたい場合は、キーボードショートカットの+ Pauseからの方が速いです)
環境変数にあるPathを選択して編集をクリックします。
バッチファイルを置いてあるフォルダのパスを追加します。
上画像の場合、赤の部分が追加したパスです。あと、パスの区切りにはセミコロンを必ず書きます。上画像の場合、Dの前にセミコロンを書いています。
これでパスが通ったので、あとは + Rのキーボードショートカットから「ファイルを指定して実行」にバッチファイル名を入力すればバッチファイルを実行できます。
コマンドプロンプトでファイルを上の階層に移動するコマンド
例えば、下のようなフォルダ階層の場合、家族写真フォルダの中にあるファイルをひとつ上の階層のフォトフォルダに移動したい場合はどういう操作をしていますか?
- マイピクチャ
- フォト
- 家族写真
- フォト
おそらく通常はファイルを選択してドラッグ&ドロップで移動していると思います。この操作って凄く煩わしいといつも感じていました。
しかし、コマンドプロンプトではいとも簡単にできてしまいます。test.jpgと言うファイルを移動したい場合を例に、以下のように入力します。
一つ上の階層へ移動 | move test.jpg .. |
二つ上の階層へ移動 | move test.jpg ../.. |
ルートへ移動(1番上) | move test.jpg \ |
このように入力することで簡単かつ確実に移動ができます。ドラッグ&ドロップでの操作は、クリック加減で意図しないフォルダに入れてしまうケースがよくあります。そういうのも解消できます。
また、拡張子を指定して移動することもできます。その場合はワイルドカードと言う特殊文字を使用します。
例:
上の例の場合、そのフォルダ内に.jpgや.gifと言った拡張子のファイルが混ざっていたとしても、pngファイルだけを指定することできます。
更に、単純に*だけの場合は、全てのファイルを扱うことができます。
例:
この場合、フォトフォルダにある全てのファイルは上の階層に移動します。
全てのファイルを上の階層に移動するバッチファイル
下のコマンドをコピーしてメモ帳などに貼り付け、バッチファイルで保存します。全てのファイルを移動したいフォルダにこのバッチファイルを置いておくことで、クリックすれば全てのファイルは瞬時に移動します。
1 2 3 4 5 6 7 8 |
@echo off setlocal enabledelayedexpansionpushd ..set rootDi=%cd%popdfor /f "usebackq delims=" %%f in (`dir /b /a-d`) do (if not "%%f"=="%~nx0" ( echo "%~dp0%%f" "%rootDi%" move "%~dp0%%f" "%rootDi%" )) echo fin pause exit |
作成したリストのフォルダを一瞬で作成するバッチファイル
例えば、音楽のジャンル別にフォルダを作りたいとします。
その場合、まずはメモ帳にジャンル一覧を書きます。それをmusic_list.txtのように名前を付けて保存します。ファイル名は任意の名前で構いません。
新しくメモ帳を開き、今度は以下のコマンドを記述します。
1 |
for /f %%a in (%1) do md %%a |
記述できたらmakefolder.batで保存します。ここではmakefolderとしていますが、自分の分かりやすい名前で構いません。保存の際にすべてのファイルになっていることを確認して、拡張子は.batで保存してください。
先ほど作成したmusic_list.txtをmakefolder.bat上にドラッグ&ドロップします。
すると一瞬でフォルダが作成されます。
※フォルダ名のリストを作成するする時は一行づつ書いてください。リストの名前の途中に空白は入れず、アンダースコアなどで対処してください。
フォルダ一覧のリストを作成する方法
逆に存在するフォルダ名からリスト一覧を作成したい場合は、メモ帳に以下のコマンドを書きます。
makefolderlist.batのように名前を付けて、そのフォルダがある場所にバッチファイルとして保存します。
1 |
dir /ad /b >folderlist.txt |
あとはmakefolderlist.batをクリックするとフォルダ名がリストとして作成されます。ファイル名はfolderlist.txtで出力されます。
フォルダではなく、存在するファイル名からリスト一覧を作成したい場合は、メモ帳に以下のコマンドを書きます。
1 |
dir /a-d /b > fileslist.txt |
makefileslist.batのように名前を付けて、そのフォルダがある場所にバッチファイルとして保存します。
あとはmakefilelist.batをクリックするとファイル名がリストとして作成されます。ファイル名はfileslist.txtで出力されます。
拡張子をまとめて変更するコマンド
コマンドプロンプトで指定したファイル名やフォルダ名を変更したい時はrenもしくはrenameコマンドを使います。
例えば、上記で作成したバッチファイルを全てテキストファイルにしたい場合、ファイルがある場所でShift + 右クリックからコマンドプロンプトを開き、下のように入力します。
例:
するとバッチファイルは全てテキストファイルに変更されます。
ワイルドカードで全ての.batを指定し、同じくワイルドカードで全て.txtへ変更しています。
ひとつのバッチファイルを指定したい場合は、単純にそのバッチファイル名を入力すればいいだけです。
例:
フォルダを一気に作成するコマンド
例えば、Sample1からSample20までのフォルダを作成したい場合、ひとつひとつ作成するのは非常に手間がかかります。
このような場合もバッチファイルで一瞬です。
下のコマンドをコピーしてバッチファイルで保存します。
1 |
for /L %%i in (1,1,20) do (mkdir SampleFile_%%i) |
コマンドにあるSampleFile_の箇所は作成するフォルダ名ですので、任意の名前に変更可能です。また、20の箇所は作成するフォルダ数ですのでこれも任意の数に変更可能です。
例ではmakefolder_sample1-20.batで保存します。それをクリックすると、
まさに一瞬です。個人的にこのバッチファイルは重宝しています。
最近メモリを増やしたので膨大な数のフォルダを作成してみたいという好奇心が・・
我慢できずに試しました。20の箇所を1000にして実行!
はやっ!一瞬でした(笑)ならば10000ではどうだ!
うん、さすがに3秒くらいかかりました(笑)フォルダ作成のみと言えど、PCに負荷はかかります。
まとめ
このように、コマンドプロントを知っていると知らないとでは、作業効率が雲泥の差と言うのが分かってもらえたと思います。
日頃から使っていると慣れてきますので、あえてコマンドプロンプトで操作するというのもいいかと思います。勉強になりますし。
タッチタイピングが苦手な人は、こう言った記号やアルファベットの文字列をコマンドプロンプトで入力するのに時間がかかると思います。
事実私もそうです(汗)なので複雑な操作を直接コマンドプロンプトで実行する機会は少ないです。逆にタッチタイピングが得意ならコマンドを一気に書いてEnterキーを「タァーン!」とやればエラーを起こさない限りさまになりそうです(笑)
詳しいコマンドの意味を知りたい場合は、本や参考サイトがいくらでもありますのでそちらで確認してみてください。
私自身まだ勉強不足で知らないことの方が多いです。便利なコマンドを忘れた時に私自身もすぐ確認できるように、この記事は備忘録も兼ねています。
あと、記事内で表示されているコードは下の画像の赤枠部分をクリックしてキーボードのCtrl + Cでコピーできるようになっています。
最後にコマンドプロンプトを使い始めた頃に参考にさせて頂いたサイトを貼っておきます。