Windowsのバッチファイルは、繰り返し行う作業を自動化できる便利なツールです。その中でも「引数(パラメータ)」を使うことで、より柔軟なスクリプトを作成できます。しかし、「バッチファイルの引数とは何か?」「どのように使うのか?」と疑問に思う方も多いのではないでしょうか。
本記事では、バッチファイルにおける引数の基本的な使い方から応用的な活用法までを詳しく解説します。バッチファイルをより効率的に活用するために、ぜひ参考にしてください。
バッチファイルの引数とは?
バッチファイルの引数とは、スクリプトを実行する際に外部から渡すデータのことを指します。例えば、同じスクリプトでも異なる入力値を使用できるため、より汎用性の高いバッチファイルを作成できます。
引数の基本構文
バッチファイルでは、引数は %1
, %2
, %3
という形で扱います。
基本的な書き方
@echo off
echo 最初の引数: %1
echo 二番目の引数: %2
このバッチファイルを test.bat
として保存し、次のように実行すると:
test.bat apple banana
出力は以下のようになります:
最初の引数: apple
二番目の引数: banana
バッチファイルで引数を利用する方法
複数の引数を扱う
バッチファイルでは、最大9個の引数を %1
から %9
まで使用できます。それ以上の引数を扱う場合は、shift
コマンドを使用して引数を左にずらします。
@echo off
echo 第一引数: %1
shift
echo 第二引数: %1
shift
echo 第三引数: %1
実行:
test.bat A B C
出力:
第一引数: A
第二引数: B
第三引数: C
引数のデフォルト値を設定する
引数が渡されない場合の対策として、IF "%1"==""
を使うことでデフォルト値を設定できます。
@echo off
set arg1=%1
if "%1"=="" set arg1=default_value
echo 第一引数: %arg1%
引数なしで実行すると:
makefileコピーする編集する第一引数: default_value
引数を活用した応用例
ユーザーに応じたメッセージを表示
引数を使って異なるメッセージを表示できます。
@echo off
echo こんにちは、%1 さん!
実行:
コピーする編集するtest.bat 太郎
出力:
こんにちは、太郎 さん!
ファイルのバックアップを取る
引数として渡されたファイルをバックアップするバッチファイルを作成できます。
@echo off
if "%1"=="" (
echo ファイル名を指定してください。
exit /b
)
copy %1 %1.bak
echo %1 を %1.bak にバックアップしました。
実行:
backup.bat example.txt
出力:
example.txt を example.txt.bak にバックアップしました。
ログを日付付きで保存
引数を使い、実行時の日付を付与したログファイルを作成できます。
@echo off
set filename=%1
if "%1"=="" set filename=logfile
set date=%date:~0,4%%date:~5,2%%date:~8,2%
echo ログを %filename%_%date%.txt に出力します。
実行:
log.bat mylog
出力:
コピーする編集するログを mylog_20240303.txt に出力します。
バッチファイルの引数をより便利に使う方法
環境変数との組み合わせ
環境変数を使うことで、引数の内容をよりダイナミックに処理できます。
@echo off
setlocal enabledelayedexpansion
set file=%1
if "%file%"=="" set file=default.txt
echo 使用するファイルは !file!
数値演算
引数に渡された数値を利用して計算を行うことも可能です。
@echo off
set /a sum=%1+%2
echo 合計: %sum%
実行:
calc.bat 10 20
出力:
合計: 30
まとめ
バッチファイルの引数を活用すると、スクリプトを柔軟にカスタマイズし、さまざまなタスクを自動化できます。
特に、複数の引数の処理やデフォルト値の設定、環境変数との組み合わせなどを理解することで、より実用的なバッチスクリプトを作成できるようになります。
この記事を参考に、ぜひ実際にバッチファイルを作成して、引数の活用法を試してみてください!