はじめに
最近batを作ったので、自分用にbatの構文をまとめておきます。
随時更新するかも?
基本的なbatの構文
1. set 変数
1)set [<variable>=[<string>]]
2)set [/p] <variable>=[<promptString>]
3)set /a <variable>=<expression>
パラメーター | 説明 |
---|---|
<variable> | 環境変数の指定 |
<string> | 指定された環境変数に関連付ける文字列 |
/p | <variable> の値をユーザーが入力した入力行に設定 |
<promptstring> | 入力をユーザーに入力を求めるメッセージを指定。このパラメーターは、/p パラメーターと共に使用の必要あり。 |
/a | <string> を評価される数値式に設定します。 |
<expression> | 数値式の指定 |
/? | コマンドプロンプトにヘルプの表示 |
1) set [<variable>=[<string>]]
例1
set x=3
set y=%x%+5
echo %y%
3+5
文字列の連結になってます。
例2
hoge.bat <引数入力>
set /a count=%1
echo 作成数:%count%
cmdでbatの後に数値を入力すると、上記の変数countに追加される。
2) set [/p] \<variable>=[\<promptString>]
例
set /p again=繰り返しますか?(y/n):
if /i "%again%"=="y" (
echo.
goto loop
) else if /i "%again%"=="n" (
echo.
echo バッチを終了します。
) else ( echo yまたはnを入力してください。
goto loop
上記は、繰り返しをy/nの入力で制御しています。
y = loop、n = bat終了
実は、自分で作成したbatの抜粋です。
loopの定義はここには記載していないので、お好みの処理で使用してください。
3)set /a \<variable>=\<expression>
例
set x=3
set /a y=%x%+5
8
echo %y%
8
/aを外すと、文字列の連結になります。
1)の内容ですね。
2. for 構文
・for /L %%変数名 in (初期値,増値,終了値) do コマンド名
例
for /l %%i in (1,1,%count%) do (
type NUL > %folder%\nul_testfile_%%i.txt
)
初期値を1として、1ずつ増加させていき、%count%まで、nul_testfile_<変数>.txtを作成する
※数値は整数の必要あり(負の値も使用可)
3. loop 構文
・:loop ~ goto loop
例
:loop
echo 使用する番号を選択してください。
set /p x="1.hoge1 2.hoge2 3.hoge3 :"
if "%x%" == "1"(
echo 1.hoge1 が選択されました。
) else if "%x%" == "2"(
echo 2.hoge2 が選択されました。
) else if "%x%" == "3"(
echo 3.hoge3 が選択されました。
) else (
echo 有効な値を入力してください。
goto loop
)
echo.
set /p again=繰り返しますか?(y / n):
if /i "%again%"=="y" (
echo.
goto loop
) else if /i "%again%"=="n" (
echo.
echo バッチを終了します。
) else ( echo yまたはnを入力してください。
goto loop