DOSコマンド大事なやつだけ
全文はDOSプロンプトから
Ø HELP <コマンド>
で参照可能。
FOR:
Ø FOR %variable IN (set) DO command [command-parameters]
%variable 単一文字変数としてvariableを置き換える
(set) 1つもしくは複数のファイル(群)を指定
command 各ファイルに対して実行したいコマンドを指定
command-parameters
実行するコマンドのスイッチや引数を指定
注1) バッチプログラム内では%variableの代わりに%%variableを使う必要がある。
注2) variableは大文字小文字を区別する。
コマンド拡張機能がサポートされている場合、以下の書式も使用可能である。
Ø FOR /D %variable IN (set) DO command [command-parameters]
setがワイルドカードを含む場合、ファイル名ではなくディレクトリ名にマッチするように仕向ける。
Ø FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
[drive:]path]を起点として、FORコマンドをツリー内の各ディレクトリに対して実行する。
ディレクトリが/Rの跡に指定されていない場合は、現在のディレクトリが走査の起点となる。
setがただ単に単一のピリオド(.)の場合、ただ単にディレクトリツリーを列挙する。
Ø FOR /L %variable IN (start,step,end) DO command [command-parameters]
この場合、setはstartからendまでの連続した数字で、そのとび幅はstepによって指定される。
よって(1,1,5)の場合、数字として1 2 3 4 5が指定され、(5,-1,1)の場合、数字として5 4 3 2 1が指定される。
Ø FOR /F [“options”] %variable IN (file-set) DO command [command-parameters]
Ø FOR /F [“options”] %variable IN (“string”) DO command [command-parameters]
Ø FOR /F [“options”] %variable IN (‘command’) DO command [command-parameters]
このファイル名のセットとは1つもしくは複数のファイル名のセットである。それぞれのファイルはOpenされ、Readされ、処理されてから次のファイルの処理に移る。
ファイルの中身を読む際に、ファイルの内容はまず各行に対して仕分けされ、それからそれぞれの行が0個以上のトークンに分解される。
それからFORループの本体がvariableの値にトークンの内容がセットされた状態で呼ばれることになる。デフォルトでは、/Fは各行に対して最初の空白で区切られたトークンを渡す。
その際、空白行はスキップされる。この分解の振る舞いは”options”パラメタを指定することにより変更することができる。これはクオートにかこまれた文字列で、1つ以上のキーワードをもち、それによってさまざまな分解オプションを指定する。キーワードは以下。
eol=c - 行の終わりを示す文字を指定(1文字のみ)
skip=n - ファイルの先頭からスキップする行数を数字で指定
delims=xxx - デリミタのセットを指定。この指定によって、デフォルトのデリミタであるスペースとタブを置き換える
tokens=x,y,m-n - それぞれの行の何番目のトークンをFOR本体の繰り返し処理に渡すかを指定。
その結果、変数が追加されることになる。書式m-nはm番目からn番目までのトークン範囲をあらわす。
またtokens=で指定された最後の文字が*(アスタリスク)の場合、さらに追加の変数が割り当てられ、
その行の残りの文字列が、最後のトークンが分解された後に(追加された変数に)割り当てられる。
usebackq - バッククオートで囲まれた文字列をコマンドとして実行し、シングルクオートで囲まれた文字列をその文字通り解釈し(元々は文字列はダブルクオートだった)、
空白のあるファイル名をダブル区オートで囲って単一のファイル名として解釈することを可能にする。
例)FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
(FORの以下の説明はDOSヘルプ本文を参照されたい)
MSTSC:
RemoteDesktopダイアログを立ち上げる。
START:
プロセスを開始する。その際に色々な情報を付加してプロセスを起動することができる。
Ø START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
TASKKILL:
プロセスをとめる。UNIXのkillコマンドと似ている。
Ø TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
(応用:STARTとTASKKILLを使って、止めたいコンソールのみを殺す方法)
1)STARTにてWINDOWTITLEを設定してコンソールを立ち上げる
$ start "<WINDOWTITLE>" <start up script>.bat
2)TASKKILLにてフィルタを、WINDOWTITLEで指定して、プロセスを終了する
$ TASKKILL /F /FI "WINDOWTITLE eq <WINDOWTITLE>*" /T
注)フィルタにはワイルドカード(*)が使える。