バッチ で よく使う 処理 の コマンド テンプレート 集

0 件のコメント

同じコードを何度も書くことほど無駄なことはない。 …と、思ったので、よく使うものをまとめて残しておきます。 (気が向いたら更新しているかもしれません…)

目次

起動された場所をカレントディレクトリとして cmd.exe を実行する

@echo off
cd /d "%~dp0"
cmd.exe

Java, Python, Ant の環境変数を追加する

rem Java
set PATH=%PATH%;C:\Program Files (x86)\Java\jre7\bin
set PATH=%PATH%;C:\Program Files\Java\jre7\bin

rem Python
set PATH=%PATH%;C:\Python27

rem Ant

日付、時間を取得する

@echo off

rem 日付を取得
set DATE_STR=%date:~-10,4%%date:~-5,2%%date:~-2,2%
 
rem 時刻を取得
set TMP_TIME=%time: =0%
set TIME_STR=%TMP_TIME:~0,2%%TMP_TIME:~3,2%%TMP_TIME:~6,2%

rem echo %date%     => 2014/05/21
rem echo %DATE_STR% => 20140521
rem echo %time%     => 00:06:11.46
rem echo %TIME_STR% => 000611

テキストファイルから変数を取得する

rem 読み込むファイル
set FILE_PATH=.\list.txt

rem 2行スキップして読み込み開始する
for /f "SKIP=2 TOKENS=1,2" %%a in (%FILE_PATH%) do (
    rem 行毎の処理を記述。カラムの値は %%a, %%b, ... で取得。
    set COL_01=%%a
    set COL_02=%%b

    rem ループ内で set した値は !xxxx! で参照。
    echo !COL_01!
)

指定したフォルダの下にあるバッチを再帰的に実行する

@echo off

rem 読み込むフォルダ
set TARGET_DIR=C:\test

rem フォルダ内のバッチファイルを名前順に実行
for %%X in ("%TARGET_DIR%\*.bat") do (
    call "%%~fX"
)

指定したフォルダの下にあるフォルダ&ファイルを再帰的に削除する

@echo off

rem 削除先フォルダ
set TARGET_DIR=D:\log

rem 警告を表示せず、配下のファイルを削除
del "%TARGET_DIR%" /f /s /q

rem 警告を表示せず、配下のフォルダを削除
cd /d "%TARGET_DIR%"
for /d %%a in (*) do (
    rmdir /s /q "%%a"
)

ファイル出力先のフォルダを確認、なければ作成する

rem フォルダの存在を確認したいパス
set FILE_PATH=D:\log\test.log

rem パスを確認して、フォルダが存在しなければ作成
call :CHECK_FOLDER_EXIST %FILE_PATH%

goto :END

rem パスの確認、作成の実処理
:CHECK_FOLDER_EXIST
if not exist "%~dp1" (
    mkdir "%~dp1"
)
goto :EOF

:END