2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バッチファイル作成について

Posted at

バッチファイルとは

拡張子が「.bat」となっているファイルのこと。
コマンドプロンプトで実行できるコマンドをバッチファイルにまとめることで
バッチファイルを1クリックするだけでコマンドをまとめて実行することができます。

どういうときに使うか

決まった作業を毎回やるような場面で作業効率を良くするのに活躍します。
私はGitの処理を自動化するのに役立てています。

バッチファイルの作成方法

  1. 拡張子「.bat」でファイルを作成
    下記のようにファイルを作成します。
    image.png
     
  2. 作成したファイルにコマンドを入力する
    先ほど作成したファイルをメモ帳等のエディタで開き、コマンドを入力します。
@echo off
echo ■■■■■■■■■■■■■
echo Hello World
echo ■■■■■■■■■■■■■
echo.
echo.本日は%year%%month%%date% です
echo.
pause

※文字コードはANSIもしくはShift-JISにしないと文字化けします
image.png

文字コードは「ファイル」→「名前を付けて保存」のエンコードで変更できます
image.png
 
3. 作成したバッチを実行する
作成したバッチをクリックすると、先ほど書いたコマンドが実行されます
image.png

良く使うコマンド例

基本コマンド

コマンド例

@echo off
rem @echo off にすると入力したコマンドが表示されなくなります
rem ←コメントアウトするときに使います

rem echoのあとに書かれたものが表示されます
echo この部分だけ表示されます

rem pauseは処理を中断し、何かのキーが入力されると処理が次に進みます
pause

rem pause以降は処理がないのでキーが入力されるとバッチが終了します

実行時
image.png

ファイルの読み書き

ファイル書き込みのコマンド例

@echo off

rem setで変数を設定できます
rem ここではstr1にHello、str2にWorldを設定
set str1=Hello
set str2=World

rem ファイル出力先を設定
set out=C:\bat\testbat.txt

rem %変数%で変数に設定したものを出力することができます
rem echo 〇〇>ファイル名で〇〇をファイルに書き込みしたものを新規で作成することができます
echo %str1%>%out%

rem echo 〇〇>>ファイル名で〇〇をファイルに追加で書き込み、なければ新規作成できます
echo %str2%>>%out%

echo %out%を作成しました

pause

実行時
image.png
image.png

ファイル読み込みの実行例

@echo off

rem ファイル読み込み先を設定
set input=C:\bat\testbat.txt

rem テキストファイルを1行ずつ読み込む
for /f "delims=" %%a in (%input%) do (
  rem %%aには1行ずつ読み込んだ文字が設定されます
  echo %%a
)

pause

実行結果(読み込みファイルは先ほど作ったもの)
image.png

ループ・条件分岐処理

ループ・条件分岐処理コマンド例
※ループ・条件分岐処理は通常だとバッチ処理内で変数を変更できないので、遅延環境変数展開を使って変更するよう注意が必要

@echo off

rem 変数はコマンドが実行されるタイミングで展開されるように変更
rem 変更しない場合はループ内での変数の変更が直ちに反映されない
setlocal enabledelayedexpansion

rem C:\bat配下に移動する
cd C:\bat

rem 変数numに数字0を設定
set /a num=0

rem C:\bat配下のファイル数だけ繰り返し処理を行う
for %%a in (*) do (
  rem ファイル名を出力
  echo %%a

 rem numに1を追加
 rem ここで変数は%変数%ではなく、遅延展開を用いた!変数!にする
  set /a num=!num!+1

  rem numの数字を出力
  echo !num!
  
  rem if 条件式 ()で条件に満たした処理が実行できます
 if !num! lss 2 (
    echo 現在ファイル数は2個より少ないです
  ) else (
    rem elseは条件式を満たさない場合の処理を行います
    echo 現在ファイル数は2個以上です
  )
)

echo ファイル数は%num%個です

pause

実行時
image.png
image.png

応用例

  • Git自動プル
@echo off

rem Gitのあるフォルダへ移動
cd C:\git\git-practice

rem gitプルコマンド実行
git pull origin main

pause

exit

実行時(管理者実行)
image.png
 
タスクスケジューラーで定期実行
windowsの標準機能の「タスクスケジューラ」を開く
image.png

操作のタスクの作成を選択し、名前を入力
※今回は管理者権限が必要なため、最上位の特権で実行するにチェック
image.png

トリガーを任意で選択
image.png

操作→新規のプログラムでGit自動プルバッチを参照にする
image.png
image.png

操作内容を設定したらOKを押してタスクを作成
image.png

あとはトリガーで設定したタイミングに自動でGitをプルしてくれるようになります

まとめ

このようにバッチではいろんなことが1クリックもしくは定期実行できるようになります。
今回紹介したことは基礎的な部分ですが、他にもいろんなコマンドが使用できますので
自分に合った使い方をして作業効率UPに繋げられればと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?