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

DOS共通コマンド(echo, rem, cd, dir)の一括処理マニュアル

2022-02-10 22:01:38


1.1 echo rem cd dir コマンドの学習

学習のポイント
1. メッセージの表示:echo
2.コメント文:rem
3.ディレクトリスイッチ:cd
4.ファイル名のリスト:dir

i. 表示情報:echo

  echoコマンドを学ぶ前に、Cドライブの下に新しいフォルダbatを作成し、空のbatファイルを作成します。例えば、私はmybat.batです。さて、次のとおりです。
Getting Started with Batch Processingマニュアルの1.1章を開始します。

1. プロンプトメッセージを出力する
書式:echo 出力したいメッセージ

例1

echo hello,world
echo i will come back
pause

実行が表示されます。
C:\bat>echo hello,world
ハローワールド
C:\bat>echo I will come back.
私は戻ってくる
C:Ⅻバット;ポーズ
続行するにはいずれかのキーを押してください。. .

バッチを書きましたが、実際に書いたコマンドを表示させないようにすることはできますか?

2.コマンドの表示をオフにする
形式です。コマンドの前に@を付ける

例2

@echo hello,world
@echo i will come back
pause

実行が表示されます。
ハローワールド
また来るよ
C:Ⅻバット;ポーズ
続行するにはいずれかのキーを押してください。. .


3. 再生機能のオン/オフの切り替え
書式:echo [{ on|off }].
  説明すると、バッチコマンドの前にecho offを付けると、バッチ内のコマンドechoをオフにします。もちろん、echo offを表示させたくない場合は
コマンドそのものを使用する場合は、echo offの前に@をつければよい。

例3

@echo off
echo hello,world
echo i will come back
pause

実行が表示されます。
ハローワールド
また来るよ
続けるには、いずれかのキーを押してください。. .

  バッチの前に @echo off を追加すると、すべてのコマンドの表示が停止され、もちろん echo off コマンド自体も表示されなくなります

4.空白行を出力する。これはキャリッジリターンを入力するのと同じである。
書式:echo.
  コマンド中の"."の後には、スペースを入れずにECHOを続けないと、"."がプロンプトメッセージとして画面に出力されることに注意しましょう。また、"." は、以下のようにすることができます。
は、:;"/]に置き換えてください。

例4

@echo off
echo I'm writing a batch tutorial!
echo.
echo Do you see an empty line up there?
pause

実行が表示されます。
バッチリチュートリアル書いてます!

上に空の行があるのがわかりますか?
続行するにはいずれかのキーを押してください。. .

   コマンド ECHO.|time の出力は、DOS パイプラインを介して他のコマンドの入力として使用できます。例えば、echo.|time は、次のように与えるのと同じです。

コマンドで質問に答える
フォーマット ECHO 返信|コマンド式
  機能 機能: reply"を入力として、続くquot;コマンド式"に渡し、pipeコマンドでコマンド式"の入力とします。(注
(パイプラインコマンド|入力方法、シフトキーに注意)

例5

@echo off
rd /s c:\abc
pause

実行が表示されます。
c:┛確認しましたか(Y/N)?

  説明すると、ここでabcは空ではないフォルダで、rdコマンドで削除するとYかNを聞いてきますので、Y/Nを手入力する必要があります。
OK、バッチを変更して、システムが自動的に確認のためにYを入力します。

例6

@echo off
echo Y|rd /s c:\abc
pause

6. 新規ファイルの作成、またはファイルへのコンテンツの追加
書式:echo ファイル内容> ファイル名

例7

@echo off
echo 123>myfile.txt
pause

  これは、カレントディレクトリに123の内容のmyfile.txtファイルを作成します。もし、空の新しいファイルを作りたいのであれば
次のように試すことができます。

例8

@echo off
echo. >myfile.txt 
pause

  注:上記のすべての例での pause は pause コマンドで、主にデモを一時停止してみんなに見せるために使います、ハハ!。

次に、コメント文:rem

remはコメントコマンドで、一般的にプログラムに注釈をつけるために使われます。このコマンドの後の内容は実行されませんが、折り返し表示することができます。

例1

@echo off
echo This is example 1!
rem The echo statement above is used to display a prompt.
pause

  また、::はremコメントとして使用でき、より簡潔で効果的です。
  まず、コロン:で始まる行は、バッチ内のマーカーとして扱われ、それ以降は単に無視されます。
有効なマーク:コロンの後に英数字で始まる文字列が続くと、goto文に認識されます。

無効なマークです。コロンの後に英数字ではない特殊記号を続けたもので、gotoでは認識されず、コメントとして機能するもの
そのため、コメント記号として::がよく使われますが、:もコメントとして使用することができます。

例2

@echo off
echo This is example 2!
::The echo statement above is used to display a prompt.
pause

  次に、remとは異なり、::以降の行は、echo onでコマンドラインのエコー状態をオンにするかどうかにかかわらず、実行中はエコーされません。 
コマンドインタプリタが有効なコマンドラインと見なさないため、この点、remは、場合によっては
の方が :: よりも適用範囲が広いでしょう。また、rem は config.sys ファイルで使用することができます。

iii. ディレクトリ切り替え:cd

1.同一パーティションの切り替え
ディレクトリ切り替えフォーマット:format:CD [ディスクレター][パス]。

  カレント・ディレクトリがC:Documents and Settingsの場合、同じパーティション内の別のディレクトリに切り替えたいときは、次の例を参照してください。(
注:以下の例の>はコマンドラインのプロンプトを、その前の>はカレントディレクトリを表します)。

例1
C:⇄WINDOWSディレクトリに移動します。

C:\Documents and Settings\mzybar> 
cd C:\WINDOWS
C:\WINDOWS>

例2
C:\WINDOWS SYSTEM32 ディレクトリに移動します。

C:\Documents and Settings\mzybar>        
cd C:\WINDOWS\system32
C:\WINDOWS\system32>

  カレントディレクトリが C:\WINDOWS で、前の階層に戻りたい場合、つまり C:\WINDOWS に戻りたい場合は、このようにすればよいです。

例3

C:\WINDOWS\system32>
cd..
C:\WINDOWS>

  ほら、cd。ずいぶん楽になったでしょう?あ!もちろん、C:⇄WINDOWSでもいいんだけど。


  カレントディレクトリが C:\WINDOWSsystem32 で、ルートディレクトリに戻りたい場合、つまり C:\ に戻りたい場合は、次のようにします。

例4

C:\WINDOWS\system32>
cd\
C:\ >

  ルートディレクトリに戻るときは、cdコマンドを使用しますが、もちろんcd c:でもかまいません。

  実は、DOSのコマンドでは、. は相対パス、...は次の階層のディレクトリ、...はルートディレクトリを表し、...は相対パスです。試してみましょう。
cd.

例5

C:\WINDOWS\system32>
cd.
C:\WINDOWS\system32>

  ほら、cd.と入力しても、.はカレントディレクトリだから同じ場所にいるし、カレントディレクトリに切り替えても何も変わっていないでしょ?

2.異なるパーティション間の切り替え
フォーマット:format:CD /d [ドライブ文字][パス]の場合
  カレントディレクトリがC:Documents and Settingsmzybarで、他のパーティションディレクトリに切り替える場合は、こちらをご覧ください。

例1
Switching to D:\123abc

C:\Documents and Settings\mzybar>
cd /d d:\123\abc
D:\123\abc>

  Dドライブのルートに切り替えたい場合は、もっと簡単な方法がありますので、ご覧ください。

例2
C:\Documents and Settings
D:
D:Ⅻ。

  ここでは、ドライブ番号のコロンを直接入力して、そのルートディレクトリに切り替えています。

3. CD の別の使い方:現在のフルパスを表示する。通常は %cd% を使って追加することで参照する。

例1

@echo off
echo The current path is %cd%
pause

  実行すると、現在のフルパスが表示されます。

IV. 列のファイル名: dir

ディレクトリ内のファイルおよびサブディレクトリの一覧を表示します。
DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]]の場合 [b] [/c] [/d] [/l] [/n]。
    [O[[:]ソート順]]。[P] [/Q] [/S] [/T[[:]timefield]]. [W] [/X] [/4]です。

    [ドライブ:][パス][ファイル名] リストアップするドライブ、ディレクトリ、および/またはファイルを指定します。

  /A 指定された属性を持つファイルを表示します。
  属性 D ディレクトリ R 読み取り専用ファイル
               H 隠しファイル A アーカイブ可能なファイル
               S システムファイル - "no"のプレフィックス。
  /B 空のフォーマット(ヘッダー情報、サマリーなし)を使用します。
  /C ファイルサイズに桁区切り文字を表示します。これはデフォルトの値です。C を使用すると
              デリミター表示を無効にする。
  /D ワイドスタイルと同じですが、ファイルが列ごとに表示されます。
  /L 小文字を使用します。
  /N 新しいロングリストフォーマットで、ファイル名が右端に表示されます。
  /O ファイルをソートして一覧表示します。
  sortorder N 名前順(アルファベット順) S サイズ順(小さい順)
               E 拡張子(アルファベット)順 D 日付/時間(最初のものから最後のもの)順
               G グループディレクトリが先 - 接頭辞の逆順
  /P 各メッセージ画面の後にポーズをかける。
  /Q ファイルの所有者を表示する。
  /S 指定されたディレクトリとすべてのサブディレクトリにあるファイルを表示します。
  /T 表示またはカテゴリ分けに使用される時間文字フィールドを制御します。
  timefield C 作成時刻
              A 最終アクセス時刻
              W 最終書き込み時刻
  /W ワイドリスト形式の場合。
  /X 8dot3以外のファイル名に対して生成されたショートネームを表示します。フォーマットは /N と同じです。
              ロングネームの前にショートネームが挿入される。短い名前がない場合は、その場所に
              は空白を表示します。
  /4 年号を4桁で表示する
  dirコマンドはまだまだあるので、上のパラメータをたくさん見ているとめまいがしてきますねぇ~ ここで、よくあるものを覚えておけばOKです~~。

1. c:\windows の下のディレクトリとファイルをリストアップします。
フォーマット DIR [ドライブ:][パス][ファイル名]。

例1
dir c:\windows
  この方法には明らかな欠点があり、リストに含まれるディレクトリやファイルが多すぎる場合、完全に表示されません。


/P 各メッセージ画面の後に一時停止します。
例2
dir /p c:\windows
  コマンドの最後にパラメータ "/p" ("page" の略) を追加して、ページネーション方式でファイルを一覧表示する、つまり、エントリーの画面を表示するようにします。
記録とファイルの後に、プロンプトの "Press any key to continue..." 任意のキーを押すと、次の画面が表示されます。これにより、画面ごとに見ることができるのです


/B 空のフォーマット(ヘッダー情報、サマリーなし)を使用します。
例3
dir /b c:\
リストアップされたファイルを見ると、日付、時間、作成者などが記載されていることがわかります。コマンドに /b パラメータを追加して、テキストのみをリストアップすることができます。

2.指定した属性のファイルをc:の下にリストアップします。
形式は DIR /a: 属性 (ここでは : 記号は省略可能)
  属性 D ディレクトリ R 読み取り専用ファイル
               H 隠しファイル A アーカイブ可能なファイル
               S システムファイル - "no"のプレフィックス。

例1
dir /a c:\
C:Ⅾ以下のすべてのファイルを一覧表示します。

例2
dir /ah c:\
暗示的なファイルをリストアップします(ファイルとフォルダーを含みます)。

例3
dir /ad c:\
C:Ⅾ以下のフォルダーをすべてリストアップします。

例4
dir /ad-h c:♪♪♪
C:\ の下にあるすべてのフォルダーを一覧表示します。ただし、暗黙のフォルダーは表示しません。

3. c:\ 以下のファイルをカテゴリー別にリストアップします。
フォーマット DIR /o: sortorder (ここでは : 記号は省略可能)
  ソート順 N:名前順(アルファベット順) S:サイズ順(小→大)
               E 拡張子(アルファベット)順 D 日付/時間(最初のものから最後のものまで)順
               G グループディレクトリが先 - 接頭辞の逆順

例1
dir /on c:\
o:sort パラメーターは、dir コマンドの結果をどのように表示するかを指定します。
(AからZまで、など)。

例2
dir /ogn c:\
フォルダーが最初に表示され、フォルダーとファイルはアルファベット順に表示されます。

  また、quot;/o" と "/a" は共にコロン ":" を付けて省略できますが、間にスペースを空けることはできません。例えば、"/o:n"を省略した後の形は、以下のようになります。
形は "/on"とする。