を参照してください。 以下のコマンドのうちの多くは MS-DOS の頃からあったものですが、 機能はかなり拡張されているものも多いです。
> help [コマンド名]
echo on
: 実行するコマンド自体も画面表示する (デフォルト)
echo off
: コマンド自体は画面表示しない
echo [文字列]
: 文字列を標準出力に表示する
echo
: 現在の echo の状態 (ON か OFF か) を表示する
のようにして >,>> で別のバッチファイルなどを作って実行することもできます。
echo @echo off> test1.bat
echo echo これは子バッチです (%%0)>> test1.bat
echo exit /b>> test1.bat
call test1.bat
なお、引数を与えないか、あるいは空白だけを引数にして echo を実行すると、 現在の echo の状態を表示しますが、 空行を表示する (つまり改行だけ行う) のに echo を利用する場合は、 「echo.」のように echo の後ろに空白を入れずに . をつけて実行します。
type [ファイル名]
: ファイルの内容を標準出力に表示する
type [ファイル1] [ファイル2] ...
:
複数の内容を連続して標準出力へ
はほぼ同じことになります (詳しくは copy の項参照) が、 複数のファイルの連結結果をそのまま他のコマンドにパイプで渡すには type の方を使います20。
> type file1 file2 > file3
> copy file1+file2 file3
more [ファイル名]
: ファイルの内容を 1 画面ずつ表示
more [ファイル1] [ファイル2] ...
:
複数のファイルを 1 画面ずつ表示
[コマンド] | more
: コマンドの出力を 1 画面ずつ表示
/s
: 複数の空白行を 1 行の空白行にまとめて表示
color [色指定]
: コマンドプロンプト画面の色を変更する
color
: コマンドプロンプト画面の色をデフォルトに戻す
とすると、背景が白で文字が緑になります。
> color f2
なお、コマンドプロンプトの色の変更は、 タイトルバーをクリックして現れるプロパティウィンドウの方が 細かく設定できます。
copy [パス指定] [ファイルB]
:
copy [パス指定] [ディレクトリ]
:
copy [パス指定]
:
[ファイルA]
: ファイルA をコピーする。
[ワイルドカードを含むファイル指定]
:
[ファイル1]+[ファイル2]+...+[ファイルn]
:
でファイルA の名前をファイルB に変更します。 ファイルA にはパス指定もできますが、ファイルB には名前だけを指定します。 ディレクトリの名前の変更にも使えますし、制限はありますが、 ワイルドカードを使って複数の名前を一度に変更することも可能です。 例えば、ren [ファイルA] [ファイルB]
とすると、test*.bat にマッチする複数のファイル名の拡張子を 一度に .t に変更できます。
> ren test*.bat *.t
[パス] 部分はファイル、またはディレクトリで、複数指定することもできます。 ファイルの場合はそのファイルを、ディレクトリの場合は、 そのディレクトリ内のファイルをすべて消去します。 ただしディレクトリの削除はできません。del [パス]
指定できるオプションには
/s
: 指定パスにあるサブディレクトリ内のファイルもすべて削除
/p
: 削除前に確認メッセージを出す
/q
: ディレクトリ指定の際の確認メッセージなしに実行
move [ファイルA] [ファイルB]
:
move [ファイルA] [ディレクトリB]
:
move [ディレクトリA] [ディレクトリB]
:
dir [パス]
: パスの内容を表示
指定できるオプションには、
/w
: 名前のみをワイド形式で表示
/l
: 大文字を小文字にして表示
/s
: サブディレクトリ内も表示
/o:[キー]
: 指定キーでソートして表示
n=名前順、s=サイズ順、e=拡張子名順、d=日付順、となっていて、それぞれデフォルトでは昇順ですが、 - を頭につけることでいずれも降順になります。
g=ディレクトリ、ファイルの順
md [ディレクトリ]
: ディレクトリの作成 (mkdir も可)
rd [ディレクトリ]
: ディレクトリの削除 (rmdir も可)
cd [ディレクトリ]
: カレントディレクトリの移動 (chdir も可)
/s
: ディレクトリ内のファイルやディレクトリも削除
/q
: /s 時の確認メッセージを出さない
/d
: ドライブ名も指定した場合カレントドライブも変更
pushd [パス]
:
popd
: 最後に積まれたディレクトリスタックのパスに移動
date
: 日付の対話的な設定 (管理者権限が必要)
time
: 時刻の対話的な設定 (管理者権限が必要)
date [日付]
: 日付の設定 (管理者権限が必要)
time [時刻]
: 時刻の設定 (管理者権限が必要)
date /t
: 現在の日付の表示
time /t
: 現在の時刻の表示
sort [ファイル]
:
/r
: 降順にソート (デフォルトは昇順)
/+[数値]
: 各行の指定番目の文字以降をキーとしてソート
/o[ファイル名]
: 出力結果をファイルに保存
find "[文字列]" [ファイル]
:
/v
: 指定した文字列を含まない行を出力
/c
: マッチした行数のみを出力
/n
: 行番号も表示
/i
: 大文字、小文字の区別をせずに検索
fc [ファイル1] [ファイル2]
:
/c
: 大文字、小文字の区別をしない
/n
: 行番号も表示
/a
: 違う範囲の先頭と最後の行だけをリポートする
/w
: 複数の空白 (タブとスペース) を一つのスペースとして比較
/t
: タブはタブのまま比較
start [コマンド]
: 別ウィンドウでコマンドを実行
start [ファイル]
: ファイルに関連づけられたアプリケーションを起動
start [ディレクトリ]
: エクスプローラを起動してディレクトリを開く
start [URL]
: 既定のブラウザで URL を開く
start mailto:[アドレス]
: 既定のメーラを起動
この方法の場合は、 デフォルトでは別のウィンドウのコマンドが立ち上がった時点で (そのコマンドが終了しなくても) 元のコマンドプロンプトは次の処理の入力待ちになり、 そちらで次の作業に移ることができます。
ファイルを指定すると、 それに関連づけられたアプリケーションを開くことができますので、 バッチファイル内から MS-Word や MS-Excel を起動することもできます。 さらに、URL を指定してブラウザやメーラを立ち上げることもできます。
オプションは例えば以下のものが指定できます。
"[タイトル]"
: ウィンドウタイトル (オプションの最初に指定)
/min
: ウィンドウを最小化して起動
/max
: ウィンドウを最大化して起動
/wait
: アプリケーションが終了するまで待機する
shift
: %[n] をそれぞれ %[n-1] にシフトする
shift /[番号]
: 指定番号以降のみシフトする
%0=test.bat, %1=123, %2=竹の, %3=茂治のときに shift コマンドをバッチファイル内で実行すると
%0=123, %1=竹の, %2=茂治となりますが、shift /2 とすると %2 以降のみシフトされ、
%0=test.bat, %1=123, %2=茂治となります。 なお、%* の値は shift では変化しません。
竹野茂治@新潟工科大学