目次一覧
状態:確認中
閲覧数:2,725
投稿日:2019-11-23
更新日:2019-11-23
バッチファイルとは?/「.bat ファイル」と「.shファイル」の違い / バッチファイルで利用できる構文
REM コマンド /「REM コマンドで記述したコメント」を画面表示させない方法は2種類 / 既に設定されている環境変数の一覧
変数 / for 文 / for 文 の注意事項
「RD コマンド」と「RMDIR コマンド」の違い
REM コマンド /「REM コマンドで記述したコメント」を画面表示させない方法は2種類 / 既に設定されている環境変数の一覧
変数 / for 文 / for 文 の注意事項
「RD コマンド」と「RMDIR コマンド」の違い
バッチファイルとは?/「.bat ファイル」と「.shファイル」の違い / バッチファイルで利用できる構文
バッチファイルとは?
「Windowsで使用する処理」を記載した(テキスト)ファイル
・拡張子は「.bat」や「.cmd」などが多く使用される
・cmd.exe というコマンドインタプリタ が、 それを一行ずつ解釈しながら実行する
(基本的には、)コマンドプロンプト上で実行できるコマンドを並べて書いたもの
batファイルを作成することで作業効率化などを図ったりもできるが、基本的にはコマンドプロンプト上で動くもの
特徴
・(C 言語とは異なり)バッチファイルをコンパイルする必要はない
・そのファイルを直接単独で実行可能
「.bat ファイル」と「.shファイル」の違い
比較一覧表
- | .bat ファイル | .shファイル |
---|---|---|
名称 | バッチファイル | シェルスクリプト |
内容 | 「Windowsで使用する処理」を記載したファイル | シェルでの動作を記載したファイル。UNIX系で使用する |
バッチファイルで利用できる構文
コマンドプロンプト用に用意されているコマンド一覧を表示
C:\Users\user>help
特定のコマンドの詳細情報は、"HELP コマンド名" を入力してください
ASSOC ファイル拡張子の関連付けを表示または変更します。
ATTRIB ファイルの属性を表示または変更します。
BREAK 拡張 CTRL+C チェックを設定または解除します。
BCDEDIT ブート データベースのプロパティを設定して起動時の読み込みを制御します。
CACLS ファイルのアクセス制御リスト (ACL) を表示または変更します。
CALL バッチ プログラム中から、別のバッチ プログラムを呼び出します。
CD 現在のディレクトリを表示または変更します。
CHCP 有効なコード ページ番号を表示または設定します。
CHDIR 現在のディレクトリを表示または変更します。
CHKDSK ディスクをチェックし、状態を表示します。
CHKNTFS 起動時のディスクのチェックを表示または変更します。
CLS 画面を消去します。
CMD Windows コマンド インタープリターを新しく起動します。
COLOR コンソールの文字と背景の既定の色を設定します。
COMP 2 個のファイルまたはファイルの集合の内容を比較します。
COMPACT NTFS パーティション上のファイルの圧縮状態を表示または変更します。
CONVERT FAT ボリュームを NTFS に変換します。現在のドライブは変換できません。
COPY 1 個以上のファイルを別の場所にコピーします。
DATE 日付を表示または変更します。
DEL 1 個以上のファイルを削除します。
DIR ディレクトリ中のファイルやサブディレクトリの一覧を表示します。
DISKPART ディスク パーティションのプロパティを表示または構成します。
DOSKEY コマンド ラインの編集、Windows コマンドの再呼び出し、マクロの
作成をします。
DRIVERQUERY
現在のデバイス ドライバーの状態とプロパティを表示します。
ECHO メッセージの表示、コマンド エコーのオン、オフの指定をします。
ENDLOCAL バッチ ファイルで、環境変数のローカル化を終了します。
ERASE 1 個以上のファイルを削除します。
EXIT CMD.EXE プログラム (コマンド インタープリター) を終了します。
FC 2 個のファイルまたはファイルの集合の内容を比較して、それらの違いを
表示します。
FIND ファイルの中からテキスト文字列を検索します。
FINDSTR ファイルの中から文字列を検索します。
FOR 指定されたコマンドを、ファイルの集合の各ファイルに対して実行
します。
FORMAT Windows で使用するためのディスクをフォーマットします。
FSUTIL ファイル システム プロパティを表示または構成します。
FTYPE ファイル拡張子の関連付けで使われるファイル タイプを表示または変更
します。
GOTO バッチ プログラム中で、ラベルで定義されている行へ Windows コマンド
インタープリターの実行を移します。
GPRESULT コンピューターまたはユーザーのグループ ポリシー情報を表示します。
GRAFTABL Windows がグラフィック モードで拡張文字セットを表示できるように
します。
HELP Windows コマンドのヘルプ情報を表示します。
ICACLS ファイルおよびディレクトリの ACL を表示、
変更、バックアップまたは復元します。
IF バッチ ファイル中で、条件処理を実行します。
LABEL ディスクのボリューム ラベルを作成、変更、または削除します。
MD ディレクトリを作成します。
MKDIR ディレクトリを作成します。
MKLINK シンボリック リンクおよびハード リンクを作成します。
MODE システム デバイスを設定します。
MORE 出力を一度に 1 画面ずつ表示します。
MOVE 1 個以上のファイルをディレクトリから別のディレクトリに移動します。
OPENFILES
リモート ユーザーによって開かれている共有ファイルを表示します。
PATH 実行可能ファイルの検索パスを表示または設定します。
PAUSE バッチ ファイルの処理を一時停止し、メッセージを表示します。
POPD 現在のディレクトリを PUSHD で保存したディレクトリに戻します。
PRINT テキスト ファイルを印刷します。
PROMPT Windows コマンド プロンプトを変更します。
PUSHD 現在のディレクトリを保存して、変更します。
RD ディレクトリを削除します。
RECOVER 不良または欠陥ディスクから読み出し可能な情報を復元します。
REM バッチ ファイルや CONFIG.SYS の中で、コメント (注釈) を記録します。
REN ファイルの名前を変更します。
RENAME ファイルの名前を変更します。
REPLACE ファイルを置き換えます。
RMDIR ディレクトリを削除します。
ROBOCOPY ファイルやディレクトリ構造をコピーする詳細ユーティリティです。
SET Windows 環境変数を表示、設定、または削除します。
SETLOCAL バッチ ファイルで、環境変数のローカル化を開始します。
SC サービス (バックグラウンド プロセス) を表示または構成します。
SCHTASKS コンピューター上で実行されるコマンドとプログラムをスケジュールします。
SHIFT バッチ ファイルで、置き換え可能パラメーターの位置をシフトします。
SHUTDOWN ローカルまたはリモートのコンピューターのシャットダウンを許可します。
SORT 入力を並べ替えます。
START 別のウィンドウを起動して、指定したプログラムまたはコマンドを実行
します。
SUBST パスをドライブ名で置き換えます。
SYSTEMINFO
コンピューター特有のプロパティと構成を表示します。
TASKLIST サービスを含む現在実行されているすべてのタスクを表示します。
TASKKILL 実行されているプロセスまたはアプリケーションを削除または停止します。
TIME システム時刻を表示または変更します。
TITLE コマンド プロンプト ウィンドウのタイトルを設定します。
TREE ドライブまたはパスのディレクトリ構造を図式表示します。
TYPE テキスト ファイルの内容を表示します。
VER Windows のバージョンを表示します。
VERIFY ファイルがディスクへ正しく書き込まれたかを照合するかどうか
Windows へ指定します。
VOL ディスクのボリューム ラベルとシリアル番号を表示します。
XCOPY ファイルやディレクトリ構造をコピーします。
WMIC 対話型コマンド シェルで WMI 情報を表示します。
ツールの詳細な情報については、オンライン ヘルプのコマンド ライン リファレンスを参照してください。
C:\Users\user>
コマンド毎のヘルプドキュメントを表示する方法
2種類
方法a.コマンド名やキーワードの後ろに /? 付与する
> if /?
> dir /?
方法b.help コマンドを使用する
> help if
> help dir
区切りとして認識される文字、特殊な意味を持つ文字 /「"」で前後を囲む / バッチファイルにおけるパス
区切りとして認識される文字、特殊な意味を持つ文字
区切りとして認識される文字
・半角スペース
・全角スペース
・半角の「;」「,」「=」
特殊な意味を持つ文字
・半角の「"」「<」「>」「%」「&」「|」「^」など
「"」で前後を囲む
「"」で前後を囲む理由
・バッチファイルにおいて、一部の半角記号と全角スペースは特殊な意味を持つため
・「"」で前後を囲むと、それらの意味はなくなり、ただの文字として認識されるようになる
具体例
・「AAA BBB」という名前のフォルダを作成する
・半角スペースが含まれているが、半角スペースで区切られてしまわないように、「"」で囲んでいる
md "AAA BBB"
バッチファイルにおけるパス
「\」区切りで表現する
C:\mp4data\PRIVATE\M4ROOT\CLIP\C0001.MP4
REM コマンド /「REM コマンドで記述したコメント」を画面表示させない方法は2種類 / 既に設定されている環境変数の一覧
REM コマンド
REM コマンドとは?
バッチファイルの中でコメントを記述することができるコマンド
echo 機能がオンになっていると
REM コマンドも画面に表示される
「REM コマンドで記述したコメント」を画面表示させない方法は2種類
echo 機能をオフにする
echo off
REM コマンドの前に @ を記述する
@rem コメント内容
既に設定されている環境変数の一覧
set コマンドで表示される
C:\Users\user> set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\user\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DESKTOP-xxxx
ComSpec=C:\WINDOWS\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
HOMEDRIVE=C:
HOMEPATH=\Users\user
LOCALAPPDATA=C:\Users\user\AppData\Local
LOGONSERVER=\\DESKTOP-xxxx
NUMBER_OF_PROCESSORS=8
OneDrive=C:\Users\user\OneDrive
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;L:\9.soft\Git\cmd;L:\9.soft\ffmpeg-20191119-0321bde-win64-static\bin;L:\9.soft\exiftool-11.76;C:\Users\user\AppData\Local\Microsoft\WindowsApps;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2a07
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\Users\user\AppData\Local\Temp
TMP=C:\Users\user\AppData\Local\Temp
USERDOMAIN=DESKTOP-xxxx
USERDOMAIN_ROAMINGPROFILE=DESKTOP-xxxx
USERNAME=user
USERPROFILE=C:\Users\user
windir=C:\WINDOWS
C:\Users\user>
変数 / for 文 / for 文 の注意事項
変数
バッチファイル内では変数を使用可能
「既に設定されている環境変数」と同じ名前を使用しないようにする
変数の設定
・「set」コマンドを使用して、変数へ代入する
・値は基本的には文字列
・値文字列にスペースが含まれていても 文字列全体を引用符で囲む必要はない
※文字列を引用符で囲むと、引用符自体も値に含まれてしまう
set 変数名=値
変数の値を利用するとき
その代入した変数を参照する際は、変数名を % で囲んで %変数名% とする
%変数名%
set a=青葉
set b=%a% 京美
echo %b%
とすると「青葉 京美」と表示されるset b=%a% 京美
echo %b%
変数の削除
set 変数名=
for 文
a.指定リスト分だけ実行
for %変数名 in (リスト) do (
コマンド
..........
)
コマンド
..........
)
b.単調な整数リストに対して実行
for /l %変数名 in (初期値,増分,終了値] do (
[コマンド]
..........
)
[コマンド]
..........
)
c.テキストファイルの各行に対して実行
for /f "オプション" %変数名 in (ファイルリスト) do (
コマンド
..........
)
コマンド
..........
)
実行するコマンドが 1 つしかない場合
下記のような1 行記述も可能
for %変数名 in (リスト) do コマンド
for %変数名 in (リスト) do (コマンド)
for 文 の注意事項
for 文の局所変数 %変数名 の変数名
アルファベット 1 文字であることが必須
バッチファイル内で使用する際
%変数名 は、 %%変数名 と % を重ねる必要がある
「RD コマンド」と「RMDIR コマンド」の違い
「RD コマンド」と「RMDIR コマンド」の違い
機能に違いはない
何れのコマンドを使用しても同じ結果となる
RDはRMDIRの略
RD という略称がエイリアス
引数
・削除するディレクトリのパスを指定する
・パスは相対パスでも絶対パスでも指定できる
・バッチファイルで処理を自動化する