概要

参考:

バッチまとめ – Qiita

基本

参考:

Windows のバッチファイルの基本的な使い方 | @IT

引数

参考:

バッチファイル引数 | CapmNetwork

バッチファイルで引数を使う | 知識ゼロからの Windows バッチファイル超入門

変数

set var=42
echo %var%

参考:

バッチファイル変数 | CapmNetwork

バッチファイルの変数について | 遠藤ヒズミの blog

バッチファイルで変数を使う | 知識ゼロからの Windows バッチファイル超入門

% (パーセント) | Programming Field

.bat (バッチファイル) で、set コマンドを使いこなすための5つの豆知識 – Qiita

set コマンドのオプション /a 有り、無しの違い | FAQ Center (tooljp.com)

set | Programming Field

set – 変数の設定・計算・ユーザーからの入力情報の取得 | 知識ゼロからの Windows バッチファイル超入門

演算

参考:

バッチファイル演算子 | CapmNetwork

遅延変数

setlocal enabledelayedexpansion

参考:

遅延変数のサンプル if 文/for 文の注意点 | ITSakura

代入時の注意/ENABLEDELAYEDEXPANSION | FreeBSD あれこれ

setlocal | Microsoft Docs [公式]

if 文

比較演算子
  • ==文字列の比較
  • equ等号
  • neq不等号
  • gtr大なり
  • lss小なり
  • geq大なりイコール
  • leq小なりイコール

参考:

IF – バッチファイルで条件分岐を使う | Let’s プログラミング

.bat (バッチファイル) の if コマンド解説 – Qiita

iff 文のサンプル | ITSakura

if 文 | 山本ワールド

if – 条件分岐 | 知識ゼロからの Windows バッチファイル超入門

バッチファイルで文字列を比較する | 知識ゼロからの Windows バッチファイル超入門

バッチで変数の空チェック – Qiita

バッチファイル (bat ファイル) で、空の変数の判定処理 | system2222

バッチファイルの if で空文字を比較する | DT日記

for 文

参考:

.bat (バッチファイル) の for コマンド解説 – Qiita

バッチファイルの for・if 文の中で変数使う際につまづくこと – Qiita

環境変数を定義する

@set PATH=%PATH%;"C\path\to\my_tools"
@set GREETING=Hello, John

参考:

SET – 環境変数の値の参照と設定 | Let’s プログラミング

環境変数の使い方 | Programming Field

画面に出力する (echo)

@echo off
echo Hello, World

参考:

echo – 文字列の出力 | 知識ゼロからの Windows バッチファイル超入門

echo | Microsoft Docs [公式]

コマンド自体を出力しない

コマンドの前に @ を付けるとそのコマンド自体を出力しない。

echo off を実行すると以降のコマンドは出力されない。

@echo off

参考:

What does “@” mean in Windows batch scripts – Stack Overflow

改行のみを出力する

echo コマンドの後ろにセミコロン ; を付ける。

@echo;

参考:

echo で改行する | 知識ゼロからの Windows バッチファイル超入門

echo で空行をファイルに出力する方法 | Project Group (projectgroup.info)

How can I echo a newline in a batch file? – Stack Overflow

コマンドを複数行に分ける

1つのコマンドを複数行に分ける場合、次の行に繋げる行末に ^ を付ける。

参考:

cmd のバッチファイルで、1コマンドを複数行にわたって記述したい場合 – Qiita

長いコマンドを複数行に分けて記述する | まくまく Windows ノート

1行を複数行に分けて書く | コマンドプロンプトの予感

バッチファイルを記述する際、ひとつのコマンドを複数行に分けて書く方法 | Project Group

バッチファイルで長い1行の処理を改行を入れて複数行に分けて書きたい | みちしるべ

コマンドを続けて実行する

参考:

複数のコマンドを続けて実行する | Let’s プログラミング

cmd のバッチファイルで、1コマンドを複数行にわたって記述したい場合 – Qiita

リダイレクト/テキストファイルに出力する

大なり記号の後にファイルのパスを指定して、出力をファイルに書き出す。

@echo Hello, World > greeting.txt

追記する場合は、大なり記号を二つ重ねる。

@echo My name is John. >> greeting.txt

参考:

ファイルへ出力する | 知識ゼロからの Windows バッチファイル超入門

How can I use a batch file to write to a text file? – Stack Overflow

ファイル入力

参考:

ファイルから文字列を読み込む | 知識ゼロからの Windows バッチファイル超入門

for ループを使ってファイル内容を一行ずつ読み込む | 知識ゼロからの Windows バッチファイル超入門

バッチファイル外部ファイルの読み書き | CapmNetwork

文字列の一部を取り出す

参考:

バッチ (.bat) で文字列の切り出しを行う | ぱーくん plus idea

BAT ファイルで文字列の切り出し | アプ研

コメント (rem)

@rem コマンドの後にコメントを記述する。

@rem Write comments here...

参考:

REM – コメントの記述 | Let’s プログラミング

別のバッチファイルを実行する (call)

参考:

CALL – バッチファイルから別のバッチファイルを呼び出す | Let’s プログラミング

call – バッチファイルやサブルーチンの呼び出し | 知識ゼロからの Windows バッチファイル超入門

バッチファイルからバッチファイルを呼び出す | 知識ゼロからの Windows バッチファイル超入門

call | Windows コマンド虎の巻

call – プログラムやバッチファイルを呼び出す | k-tanaka.net

サブルーチン

参考:

バッチでサブルーチンを書く – Qiita

call, setlocal – バッチファイルでサブルーチンを定義する、別のバッチファイルを呼び出す | まくまく Windows ノート

バッチファイルでサブルーチンを使用する | 知識ゼロからの Windows バッチファイル超入門

サブルーチン (関数) のサンプル | ITSakura

exit

exit /b

参考:

「exit /b」 – バッチファイルで戻り値を得る | 知識ゼロからの Windows バッチファイル超入門

exit – コマンドプロンプトやサブルーチンを終了する | 知識ゼロからの Windows バッチファイル超入門

EXIT – コマンドプロンプトまたはバッチファイルを終了 | Let’s プログラミング

エスケープ

参考:

バッチファイルのエスケープ文字は^だ!! | みちしるべ

ファイルのパスに空白が含まれるとエラーになる

参考:

バッチファイルでのスペースを含んだ文字列の取り扱い | 知識ゼロからの Windows バッチファイル超入門

CMD.exe でパス名に空白が入ってどうしても解決できないときのオカルト技 – Qiita

コマンドプロンプトで、「コマンドの構文が間違っています」、というエラーになります – Yahoo! 知恵袋

相対パスでファイルを指定する

参考:

%~dp0 とは | ぺんたん info

How to call a batch file that is one level up from the current directory? – Stack Overflow

Get the path two directories up in batch file – Stack Overflow

how to navigate in range of parent folder without full path? – Super User

引数の数を判定する

参考:

バッチ起動時の引数の個数の数え方 | DOS プロンプト活用相談室 LOG

バッチファイル内で引数が渡されているか確認するサンプルプログラム | FAQ Center (tooljp.com)

引数からファイル名を取得する

  • %~nx1ファイル名と拡張子
  • %~x1拡張子のみ
  • %~n1拡張子を取り除いたファイル名

参考:

バッチファイルで basename – Qiita

管理者権限で実行する

管理者権限でバッチファイルを実行した場合、システムディレクトリから実行される。

C:\Windows\System32

参考:

バッチファイルを管理者として実行した場合のカレントディレクトリ | シスメモ (centos.964ma.com)

管理者として実行するバッチファイルを作るときの注意事項 | マコトのおもちゃ箱

バッチファイルを管理者として実行したときの問題点と回避方法 | サラリーマン IT 技術者の調査レポート

管理者権限で実行されているか判定する

参考:

PowerShell やバッチファイルで管理者特権をチェック – Qiita

管理者権限で実行しているか判定する | ぱそまき

how to check for admin rights – Stack Overflow

How to detect if CMD is running as Administrator/has elevated privileges? – Stack Overflow

バックグラウンドで実行する

参考:

バッチ処理をバックグラウンドで行う | Mすた

バッチファイルを実行する時に黒いコマンドプロンプト画面を表示しない方法 | amaoto-log

日本語が文字化けする

文字コードに UTF-8 を使用する。

chcp 65001

参考:

UTF-8 のバッチファイルが文字化けする時の対処 3選 | なゆたり

chcp | Programming Field

コードページ識別子 | Microsoft Docs [公式]

ダメ文字

参考:

ダメ文字一覧表 | fudist

バッチファイルを書くときに気をつけていること – Qiita

日本語ファイル名が扱えない

参考:

bat (バッチ) ファイルを起動すると文字化けする現象の対策 – Qiita

バッチで日本語ファイルが開けない/文字化けする時の対処法 | Web Work Plus

Windows のコマンドプロンプトで bat ファイルを実行したら文字化けする | ライトリ

コマンドプロンプトで漢字表記のシステムファイルが扱えない – Visual Studio フォーラム

まとめ

参考:

バッチファイルの作成 | Let’s プログラミング

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です