神戸学院大学 経営学部 林坂ゼミ

CLI 入門トップページ

« 戻る 次へ »

コマンドプロンプト

変数とバッチファイル

変数の定義

コマンドプロンプトでは簡単な変数を利用することができます.変数は「%変数名%」で参照します.まだ,「NAME」という変数は定義されていないので,次のような結果になります.

C:\Users\rinsaka\Documents\cmd>echo Hello %NAME%! ⏎
Hello %NAME%!

C:\Users\rinsaka\Documents\cmd>

次に,「set」コマンドを用いて「NAME」変数に文字列を代入します.その後,変数の内容を含む文字列を画面に表示します.

C:\Users\rinsaka\Documents\cmd>set NAME=Koichiro ⏎

C:\Users\rinsaka\Documents\cmd>echo Hello %NAME%! ⏎
Hello Koichiro!

C:\Users\rinsaka\Documents\cmd>

変数の内容を削除するには次のようにします.

C:\Users\rinsaka\Documents\cmd>set NAME= ⏎

C:\Users\rinsaka\Documents\cmd>

目次に戻る

バッチファイル

バッチファイルは指定したコマンドを何度も繰り返して実行するなど,自動的な処理をする際に便利なファイルです.メモ帳やVisual Studio Codeなどのテキストエディタで次の内容を作成し,ファイル名の拡張子には「.bat」を指定して保存してください.なお,「set /p」は変数に入力値を代入するためのオプションです.

hello.bat
@echo off
set /p NAME=input your name:
echo Hello %NAME%!
echo %DATE% %TIME%
pause

保存されたバッチファイルを確認します.

C:\Users\rinsaka\Documents\cmd>dir ⏎
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 9018-19A1 です

 C:\Users\rinsaka\Documents\cmd のディレクトリ

2025/07/28  18:13    <DIR>          .
2025/07/28  17:46    <DIR>          ..
2025/07/28  18:13                88 hello.bat
2025/07/28  17:50                25 test1.txt
2025/07/28  17:50                25 test2.txt
2025/07/28  17:52                75 test30.txt
               4 個のファイル                 213 バイト
               2 個のディレクトリ  163,406,864,384 バイトの空き領域

C:\Users\rinsaka\Documents\cmd>

バッチファイルを実行するには,コマンドプロンプトでファイル名を指定するだけです.

C:\Users\rinsaka\Documents\cmd>hello.bat ⏎
input your name:Taro ⏎
Hello Taro!
2025/07/28 18:13:43.58
続行するには何かキーを押してください . . .

C:\Users\rinsaka\Documents\cmd>

条件分岐は次のような感じになります.18歳以上であるかどうかを確認して,「Adult」または「underage」を表示します.なお,REM はその行のコメントアウトを意味し,GEQ は以上 (Grater than or EQual to) を意味します.また1行目に「@echo off」を記述することで,バッチファイル内のコマンド自体が表示されなくなります.試しに1行目を削除して実行した場合にどのような結果になるかについても確認すると良いでしょう.

age.bat
@echo off
set AGE=17

REM 条件分岐
IF %AGE% GEQ 18 (
  echo adult
) ELSE (
  echo underage
)
C:\Users\rinsaka\Documents\cmd>age.bat ⏎
underage

C:\Users\rinsaka\Documents\cmd>

繰り返しの構文も利用してみましょう.カレントディレクトリにある拡張子が *.txt であるファイル名をすべて取得して表示します.

files.bat
@echo off
FOR %%i IN (*.txt) DO echo %%i
C:\Users\rinsaka\Documents\cmd>files.bat ⏎
test1.txt
test2.txt
test4.txt

C:\Users\rinsaka\Documents\cmd>

目次に戻る