1. ホーム
  2. スクリプト・コラム
  3. DOS/BAT

DOS共通コマンド(md,rd,ren,move)一括処理マニュアル

2022-02-10 17:56:13

1.3 md rd ren moveコマンドの学習

学習のポイント
1. フォルダの作成:md
2. フォルダの削除:rd
3. ファイル(フォルダー)名の変更:REN
4. ファイル(フォルダ)の移動:移動

i. フォルダの作成:md

md コマンドは、フォルダーを作成するために使用します。以下の例のパスはデフォルト可能です。デフォルトされた場合、新しいフォルダがカレントディレクトリに作成されます。新しいフォルダとそのパスがスペースや特殊記号で作成された場合、それらはダブルクォートで囲われます。

1. 単一フォルダの作成
形式を指定します。MD [パス]ディレクトリ

例1
md d:\ \
Dドライブの下にabcというフォルダを作成します。

例2
md abc
ここでは、デフォルトのパスで、その後、カレントディレクトリにabcというフォルダが作成されます。

例3
md "d:\my game"
Dドライブの下にmy gameというフォルダを作成します。
スペースや特殊な記号を含む新しいフォルダー名は、必ずダブルクォーテーション(" ")で囲んでください。

例4
md "C:\Documents and Settings456^ 789"
C:\Documents and Settingsの下に456^ 789というフォルダを作成し、パスにスペースがあるため、フォルダ名と一緒にパスをダブルクォート" "で囲みます。

2. 複数のディレクトリを一度に作成する
Format:md [path]directory1 [path]directory2 [path]directory3 .......

例5
md abc D:\gmae123 abcd
カレントディレクトリにabcとabcdの2つのファイルを作成し、さらにD: \gmaeの下に123というフォルダーを作成します。


3. 多階層ディレクトリの作成
Format:md [path]directory1 directory2 directory3...

Dドライブの下にabcというフォルダを作り、abcの中にabcdという新しいフォルダを作り、abcdの中にabcdeというフォルダを作りたい場合、それを一度にできるコマンドはないのだろうか?答えは「YES」です!

例6
md d:\abcabcd ︵︵︵︵ㄨ
たったこれだけのことですが、信じられませんか?確かに試せますね、え?


反省しています。

  例4で、コマンドがダブルクォーテーションで囲まれていない場合、つまりmd C:\Documents and Settings456^ 789の場合はどうなるでしょうか。これは君に試してもらおう、ハハッ

II. フォルダを削除する:rd

ディレクトリを削除します。
RMDIR [/S] [/Q] [ドライブ:]パス
RD [/S] [/Q] [ドライブ:]パス

    /S は、ディレクトリ自体に加えて、指定されたディレクトリの下にあるすべてのサブディレクトリを削除し
            ファイルを作成します。ディレクトリツリーを削除するときに使用します。
    /Q /S と併用するクワイエットモード 確認を求めずにディレクトリ ツリーを削除します。


rd コマンドは、引数を追加しない場合、空のフォルダーしか削除できません。

例1.
rd d:\
rd abc
1つ目は、Dドライブ下の空のフォルダ123を削除すること、2つ目は、カレントディレクトリの空のフォルダabcを削除することです。


/S は、ディレクトリ自体だけでなく、指定されたディレクトリの下のすべてのサブディレクトリとファイルを削除します。ディレクトリ ツリーを削除する場合に使用します。

例2.
rd /s d:\123
フォルダ123が空でない場合、/Sパラメータでフォルダ123を削除することができます。


/Q /S のクワイエットモード 確認を求めることなくディレクトリツリーを削除します。

例3.
rd /s /q d:\123
Sパラメータを使用する場合、d:㊧確認しましたか(Y/N)と表示されます。と聞かれますが、/Qパラメータを使用すると、聞かれずに削除することができます。

III. ファイル(フォルダ)名の変更:REN

ファイル名を変更します。
RENAME [ドライブ:][パス]ファイル名1 ファイル名2.
REN [ドライブ:][パス]ファイル名1 ファイル名2.

filename1 のパスは省略可能で、デフォルトではカレントディレクトリとなる。 filename2 にはファイル名のみを指定でき、パスは使用できない。


1. 個別ファイルのリネーム

例1
ren d:\123.txt 456.bat
123.txtを456にリネームし、接尾辞をbatに変更します。

例2
ren 123.txt 456.bat
デフォルトのパスケースで、カレントディレクトリにある123.txtを456.batにリネームします。


2. 一括リネーム

を使った一括リネームは、*と?が一括リネーム用のワイルドカードになります。* は任意の文字数、? は1文字を表します。

例3
ren *.bat *.txt
接尾辞がbatのファイルを接尾辞がtxtのファイルに一括変更します。


ワイルドカードの場合?もっとややこしいので、この辺にしておいて、もっと詳しい情報を探してもらいましょう
ファイル名に隠し属性やシステム属性がある場合、直接名前を変更することができないため、ファイル名を変更する前に隠し属性やシステム属性を削除する必要があります。

IV. ファイル(フォルダ)の移動:move

ファイルを移動したり、ファイルやディレクトリの名前を変更したりします。

少なくとも1つのファイルを移動すること。
MOVE [/Y | /-Y] [ドライブ:][パス]ファイル名1[,...]宛先

ディレクトリの名前を変更する場合。
MOVE [/Y | /-Y] [ドライブ:][パス]dirname1 dirname2

  [ドライブ:][パス]ファイル名1 移動したいファイルの場所と名前を指定します。
  宛先 ファイルの新しい保存場所を指定します。移動先には、ドライブ番号
                          とコロン、ディレクトリ名、またはその組み合わせ。1つのファイルだけを移動する場合
                          というように、ファイル名を変えて移動することも可能です。
  [ドライブ:][パス]dirname1 名前を変更するディレクトリを指定します。
  dirname2 ディレクトリの新しい名前を指定します。

  /Y 既存のターゲット ファイルを書き換えるプロンプトのコメントを解除します。
  /-Y 既存のターゲット ファイルを書き換えるための確認を求めるプロンプトを表示します。


1. ファイル(フォルダー)の移動
基本的な形式です。MOVE [/Y | /-Y] [ドライブ:][パス]ファイル名1[,...]宛先

[ドライブ:][パス]ファイル名1[,...]を指定します。
移動したいファイル(フォルダ)は、相対パスでも絶対パスでも構いませんが、パスの場合のデフォルトはカレントディレクトリです。

Destinationはディレクトリパスのみ、相対パスでも絶対パスでも可能で、デフォルトではカレントディレクトリになります。

例1
移動 d:\abc d:\abcd
フォルダabcをフォルダabcdの中に移動した場合。

例2
123.txtを移動する abc
123.txtをカレントディレクトリからカレントフォルダabcに移動する。ここでは相対パスが使用され、デフォルトパスはカレントディレクトリがデフォルトとなる。

例3
move 123.txt e:\abc
123.txtをカレントディレクトリからe: \abcディレクトリに移動します。


2. ファイル(フォルダ)名を変更する

例4
move d:\abc d:\abcd
ここで注意するのは、目的のフォルダabcdが存在しない場合、abcをd:heyに移動し、自身の名前をabcdに変更することです。
この機能を使うと、moveコマンドにリネーム機能がついています。

例5
move d:\123.txt d:\abc456.txt
456.txtが存在する場合は、D:Ⅾ456.txtを書き換えますか、というプロンプトが表示されます。(Yes/No/All)と表示されます。
456.txtが存在しない場合は、123.txtをd:⇄abcディレクトリに移動し、456.txtにリネームしてください。

例6
移動 /y 123.txt 456.txt
123.txtと456.txtの両方が存在する場合、/yパラメータを渡した後、システムはプロンプトを表示せず、123.txtを456.txtで直接上書きします。

例7
move 123.txt e:\abc456.txt
クロスゾーン移動の場合、456.txtが存在すると、「file exists」と表示されます。456.txtが存在しない場合、123.txtをe:³³に移動し、456.txtにリネームしてください。


MOVEコマンドは、ファイルをパーティションをまたいで移動させることができますが、フォルダをパーティションをまたいで移動させることはできません。
パーティションをまたいでファイルを移動する場合、移動先が移動するファイルと同じ名前であれば、「ファイルが存在します」と表示され、最終的にコマンドは実行されません。
隠し属性やシステム属性を持つファイルについては、その属性が削除された後に、移動コマンドが実行されます。


まとめてみよう。

移動A Bのようなパターンの場合

1. AとBが同じフォルダ名であれば
   Bが存在する場合、AをBのディレクトリに移動します。(例 1 のように)。
   Bが存在しない場合 ②AをBのあるディレクトリに移動し、同時にBにリネームする。(例4のように)。

2. Aがファイル名、Bがフォルダ名の場合。
  は、AをBのディレクトリに移動します。(例2,例3)。
   BフォルダがAファイルと同じ名前の場合。
      I AとBが同じパーティションであれば、プロンプトが表示されます。上書きしますか/上書きしませんか/すべて上書きしますか?
      II AとBが異なるパーティションである場合、プロンプトが表示されます。ファイルが存在します。何もしないでください!

3. AとBが同じファイル名の場合
   Bが存在しない場合は、AをBのあるディレクトリに移動し、Bにリネームします(例:例7)。