概要

参考:

バッチまとめ – Qiita

基本

参考:

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

引数

  • %1%2%3、… 引数が順に格納される

参考:

バッチファイル実行時に引数を渡す | JavaDrive

バッチ実行時に引数を渡す方法 | 社内 SE の IT メモブログ

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

バッチファイル引数 | CapmNetwork

変数

変数に値を設定する時は set を使い、参照する時は変数名を2つの % で囲む。

set var=42
echo %var%Code language: DOS .bat (dos)

ドキュメント:

set | Microsoft Learn [公式]

参考:

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

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

バッチファイルで変数を使う方法 | そまちょブログ

「%」 (パーセント) | Programming Field

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

変数の使い方 | to_dk notebook

バッチファイル変数 | CapmNetwork

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

set | Programming Field

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

defining and using a variable in batch file – Stack Overflow

variables with reserved character % – Stack Overflow

How to assign output from command to variable in command prompt – Stack Overflow

How to set a variable in bat / cmd? – Stack Overflow

setting variable then echoing fails – Stack Overflow

演算

変数を用いて演算を実行し、結果を変数に格納する。

set /a y=%a%*%x%*%x%+%b%*%x%+%c%Code language: DOS .bat (dos)
演算子
  • + 加算
  • - 減算
  • * 乗算
  • / 除算
  • % 剰余
  • += 加算代入
  • -= 減算代入

参考:

バッチファイル内で計算を行う | 知識ゼロからの Windows バッチファイル超入門

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

浮動小数計算 | とってもソフトな技術集21

コマンドプロンプトで計算をする | softel メモ

コマンドプロンプトで計算を行う方法を紹介! | Aprico

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

環境変数を定義する

@set PATH=%PATH%;"C\path\to\my_tools"
@set GREETING=Hello, JohnCode language: DOS .bat (dos)

ドキュメント:

set | Microsoft Learn [公式]

参考:

SET – 環境変数の値の参照と設定 | JavaDrive

環境変数の使い方 | Programming Field

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

set | Windows コマンド虎の巻

set | Programming Field

set | so-zou.jp

画面に出力する (echo)

@echo off
echo Hello, WorldCode language: DOS .bat (dos)

ドキュメント:

echo | Microsoft Docs [公式]

参考:

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

ECHO – 任意の文字列を表示 | JavaDrive

echo の出力の最後にスペースを出力しない方法 | うしくんの日々

echo で半角スペースを出力する方法 | b00k.jp

テキストファイルの改行やスペースが消えてしまう – スタック・オーバーフロー

改行なしで空白のみを出力させる方法はありますか? – Yahoo! 知恵袋

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

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

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

@echo offCode language: DOS .bat (dos)

参考:

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

改行のみを出力する

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

@echo;Code language: DOS .bat (dos)

参考:

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

echo で空行をファイルに出力する方法 | Project Group

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

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

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

参考:

1コマンドを複数行にわたって記述したい場合 – Qiita

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

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

ひとつのコマンドを複数行に分けて書く方法 | Project Group

長い1行の処理を改行を入れて複数行に分けて書きたい | みちしるべ

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

  • & 一行で複数のコマンドを実行する
  • && 前のコマンドが成功したら、次のコマンドを実行する
  • || 前のコマンドが失敗したら、次のコマンドを実行する
set

set コマンドで設定した環境変数を同じ行内で参照する場合は、コマンド呼び出しに call コマンドを使用する。

set "greeting=Hello, World" & call echo %greeting%

参考:

複数のコマンドを続けて実行する | JavaDrive

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

How do I run two commands in one line in CMD? – Stack Overflow

Multiple commands on a single line in a batch file – Stack Overflow

How to run multiple commands in one line using cmd – Stack Overflow

Using a variable set in the same line of a one-liner – Stack Overflow

run two commands in one windows cmd line, one command is SET command – Stack Overflow

文字列の一部を取り出す

参考:

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

バッチコマンドで文字列の切り出しを行う方法 | 夢幻電脳館

部分文字列の取得 | FreeBSD あれこれ

文字列の切り出し | アプ研

How to extract part of a string in batch file? – Super User

文字列を連結する

set コマンドで2つの変数に格納された文字列を連結する。

set str3=%str1%%str2%Code language: DOS .bat (dos)

参考:

文字列を連結する | コマンドプロンプトの予感

文字列を連結するサンプルプログラム | FAQ Center

文字列を分割する

  • for コマンドを使う

参考:

バッチで for 文を使って文字列を分割する | ITメモブログ

バッチファイルの split/for /F で文字列分割の使い方 | lisz-works

How to split a string by spaces in a Windows batch file? – Stack Overflow

コメント (rem)

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

@rem Write comments here...Code language: DOS .bat (dos)

参考:

REM – コメントの記述 | JavaDrive

クォーテーション

引数からクォーテーションを取り除くにはチルダを使う。

target=%~1Code language: DOS .bat (dos)

参考:

バッチファイルで引数部分のダブルクォーテーションを削除する | system2222

パス表記のダブルクォーテーション問題は、BAT ファイル内で解決しよう | nurs の日記

引数のダブルクォーテーションを削除するサンプル | FAQ Center

findstr でダブルクォートを含む文字を検索する | FAQ Center

バッチファイルのシングルクォーテーションとダブルクォーテーションの違い/使い方 – teratail

バッチで変数にダブルクオーテーションを格納したい – teratail

バッチファイルで変数を複数行にわけて指定したときのダブルクォーテーションの指定について – スタック・オーバーフロー

空白を含むパラメータをバッチファイルに指定するには? – Microsoft TechNet

escaping double quotes in batch script – Stack Overflow

How to pass escaped double quote to batch file – Stack Overflow

エスケープ

  • エスケープ記号 ^
  • パーセント記号 % をエスケープする → 「%%」 (パーセント記号を2つ重ねる)

参考:

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

コマンドプロンプトでのエスケープ文字 – 教えて!  goo

変数に特殊記号を代入するとき、記号の前に ^ (ハット) をつけても代入されない – Microsoft コミュニティ

サブルーチン

参考:

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

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

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

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

ローカル変数

ドキュメント:

setlocal | Microsoft Learn [公式]

endlocal | Microsoft Learn [公式]

参考:

setlocal / endlocal – ローカル変数を使う | 知識ゼロからの Windows バッチファイル超入門

setlocal | Windows コマンド虎の巻

setlocal | Programming Field

setlocal | 日経クロステック

endlocal | 日経クロステック

exit

exit /bCode language: DOS .bat (dos)

参考:

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

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

EXIT – コマンドプロンプトまたはバッチファイルを終了 | JavaDrive

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

参考:

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

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

実行を一時停止する

参考:

PAUSE – キーが押されるまで処理を一時停止 | JavaDrive

スリープ

参考:

timeout / sleep コマンドでバッチファイルの実行を一時停止する | @IT

まとめ

バッチまとめ – Qiita

バッチファイルの作成 | JavaDrive

シェルスクリプトに慣れた人に贈るバッチファイルの書き方 | hymkor

バッチメモ | ひしだま’s ホームページ

リダイレクト/パイプ/文字列の操作/ファイルの操作まとめ | Web Creators Hub

分岐と選択でまとまるバッチファイルの作成 | Kibekin Blog

バッチ入門 | とほほの WWW 入門

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

コメントを残す

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

Protected by reCAPTCHA