l .お知らせ 内容 LINK FILE
HTML Win PC Unix MS-DOS C C++ Mfc Java |
.MS-DOS_
| バッチファイル | 例 | 未使用 | コマンド |
MS-DOS コマンドをまとめて記述したテキストファイルは、普通のテキストファイルと区別するために、ABC.bat のように拡張子を BAT にします。
拡張子が BAT のファイルは、文書ファイルとしてではなく、MS-DOS コマンドがまとめて記述されたプログラムファイルとして扱われます。
コマンドの説明を表示するには MS-DOS ウインドウで HELP と入力します。
HELP の先頭ページには、HELP を終了して MS-DOS ウインドウに戻る方法や、各コマンドの説明を表示させる方法が書いてあります。
◆バッチファイルの例◆
TEST.bat
|
DIR > の > は、DIR コマンドでディレクトリの内容を表示するときに、MS-DOS ウインドウに表示するのではなく、指定されたファイルに書き込むためのリダイレクト記号です。
C:\WINDOWS\NOTEPAD.exe のようにプログラム名を記述すると、コマンドと同様に、そのプログラムが実行されます。
この場合は、notepad に test.txt を開くように指定しています。
test.txt のように、プログラムまたはコマンドと同じ行(コマンドライン)に書かれた、そのプログラムまたはコマンドに与えるデータを、コマンドラインといいます。
EXIT は MS-DOS を終了するコマンドです。
このバッチファイルが終了しても MS-DOS ウインドウを使って作業をしたいときは、必要ありません。その作業が終ってから、EXIT と入力して MS-DOS を終了します。
このようなバッチファイルを作ると、TEST.batへのショートカットというファイルも勝手に作られます。
起動するときは TEST.bat かショートカットのどちらかをダブルクリックします。
TEST.batへのショートカットは、TEST.bat の起動方法を決めるためのファイルです。
ショートカットのプロパティで、実行時の大きさを最小化の状態にし、プログラム終了時にウインドウを閉じるをチェックしておけば、上記のバッチファイルは全く MS-DOS ウインドウを表示することなく、notepad により test.txt が表示されます。
なお、上記の例では test.txt を表示した後削除していますので、test.txt はなくなりますが、表示はされています。
◆ リダイレクト > >> ◆ 出力の変更
コマンドまたはプログラムの出力を、画面ではなくファイルに書込みます。
|
| ||
|
ファイルの指定がないので CM_FIL は画面に表示しようとするが、 リダイレクトにより COML.bat に書込まれる。 |
PAUSE >> NULL のように、画面にメッセージを表示しないようにもできます。
NULL は、このような目的に使われる特別のファイルです。
NULL は無(何もない)という意味です。NULL=ヌルまたはナル
◆リダイレクト < ◆ 入力の変更
コマンドへの入力を、キーボードからではなくファイルから与えます。
|
| CM_FIL.exe COML.bat < SAMPL.txt |
出力先を変更するリダイレクトでは、コマンドの出力をリダイレクト先のファイルに書込みますが、パイプの場合はコマンドの出力をパイプ先のコマンドに処理させます。
|
|
ECHO %1 | CM_FIL.exe COML.bat |
◆コマンドラインの判定◆
バッチファイルを起動するときには、コマンドラインからデータを与えることができます。
これをパラメータといいます。
ABC.bat C SAMP のように起動するバッチファイルの例を示します。
コマンドラインからドライブ名とファイル名を与えて、そのドライブの内容をファイルに書込みます。
| ||
|
%0 にはバッチファイル名が、C:\BATCH\ABC.bat のように格納されます。 %1 には、一番目のパラメータが C のように入ります。 %2 には、二番目のパラメータが SAMP のように入ります。 パラメータは %0 〜 %9 まであります。 |
バッチファイルの実行中に、CHOICE コマンドを使ってキーボードから1文字だけデータを与えることができます。
キーボードから入力された文字は、ERRORLEVEL という変数にそのキーコードが代入されます。
ERRORLEVEL は IF コマンドで処理します。
CHOICE コマンドは用法が限られるので、ここでは MS-DOS5.0以前に含まれていた BATKEY と同じコマンド BAT2 を作って使っています。(MS-DOS のページにあります。)
| ||
キーコード
- - 03 - 13 - 27 - 50 1 2 3 4 5 6 7 8 9 90 1 2 3 4 5 6 7 8 9
BREAK CR ESC 2 3 4 5 6 7 8 9 : ; Z [ \ ] ^ _ a b c
- 28 29 30 31 32 60 1 2 3 4 5 6 7 8 9 110 1 2 3 4 5 6 7 8 9
→ ← ↑ ↓ SPACE < = > ? @ A B C D E d e f g h i j k l m
30 1 2 3 4 5 6 7 8 9 70 1 2 3 4 5 6 7 8 9 120 1 2 3 4 5 6 7 8 9
! " # $ % & ' F G H I J K L M N O n o p q r s t u v w
40 1 2 3 4 5 6 7 8 9 80 1 2 3 4 5 6 7 8 9 130 1 2 3 4 5 6 7 8 9
( ) * + , - . / 0 1 P Q R S T U V W X Y x y z { | } ~
上段のキーコードは、対応する文字のアスキーコードを 10進数で表わした
ものと同じです。
◆ 環境変数 ◆
コンピュータのプログラムには、数値などを代入するための変数が使われています。
変数には、数値だけではなく、画面に表示するための文字なども代入できます。
MS-DOS(command.com) もプログラムですから、たくさんの変数が使われています。
MS-DOS で使われている変数の内、利用者(ユーザー)が直接利用できるものを環境変数といいます。
環境変数は path のように、主に MS-DOS の動作環境を代入(設定)します。
環境変数に代入できるのは文字だけに決められているので、環境文字列と呼ばれることもあります。
MS-DOS は、実際の動作を始める前に、AUTOEXEC.bat というバッチプログラムを実行するようになっているので、いつも同じ動作環境を設定したい場合は、ここに書いておきます。
自分で勝手に変数を作って、バッチファイルの中で使うこともできます。
現在設定されている環境変数を表示するには
SET と入力します。現在設定されている環境変数が表示されます。
|
C:\>SET TMP=C:\WINDOWS\TEMP winbootdir=C:\WINDOWS COMSPEC=C:\WINDOWS\COMMAND.COM SOUND=C:\SOUND16A PROMPT=$p$g TEMP=C:\DOS DIRCMD=/OGN PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\ DOS windir=C:\WINDOWS CMDLINE=DOSKEY /INSERT C:\> |
| 変更/新設 | SET 変数名=設定値(設定する文字) |
| 変数の消去 | SET 変数名= |
|
C:\>SET PATH=D:\ PATH の設定値を D:\ に変更 C:\>SET X=WINDOWS 変数 X を 新設し、WINDOWS と代入する C:\>SET X= 変数 X を消去する |
|
C:\>PATH=D:\ PATH の設定値を D:\ に変更 C:\>PATH D:\ PATH の設定値を D:\ に変更 C:\>PATH= PATH の設定内容を表示する C:\>PATH=D:\ C:\>PATH PATH の設定内容を表示する C:\>PATH=D:\ C:\> |
|
DIR %X% X のディレクトリーを表示する |
|
C:\>SET X=WINDOWS 変数 X を 新設し、WINDOWS と代入する C:\>TEST X DIR WINDOWS と入力したのと同じ |