複数ファイルの内容を1ファイルにまとめるバッチを作ってみた
おはようございます。
ちょっと需要があるのかどうかわかりませんが、
複数ファイルの内容を読込み、1つのファイルに出力するバッチを作成しました。
用途としては、
複数に分けて管理している SQLファイルなどを
サクッと一括実行できるようにまとめる。といった感じです。
簡単なバッチなので、
色々と応用することはできそうですしね。
スポンサーリンク
テキスト結合バッチ
次のプログラムをテキストファイルに張り付け、
「TextFileJoin.bat」などと、名前を付けて保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | @echo off REM ----------------------------------------------------------------------------------------- REM ファイル結合バッチ REM ----------------------------------------------------------------------------------------- REM 概要: REM 実行ファイルと同じディレクトリに存在するファイルを読み取り、 REM 内容を1つのファイルに出力します REM ----------------------------------------------------------------------------------------- SETFILTER=*.sql SETFILE=RESULT.TXT SETLOGF=fileJoin.log SETCURDIR=%CD% :LA_STARTBATCH cls ECHO. ECHO %CURDIR% 配下に存在する %FILTER% の内容を %FILE% に出力します。 ECHO. SET/pchoice=よろしいですか(y/n)⇒ IF'%choice%'==''GOTOLA_STARTBATCH IF'%choice%'=='n'GOTOLA_ENDBATCH REM コマンドチェック call:LA_CHECK_COMANDyn ECHO [%DATE% %TIME%] バッチ処理開始 > %LOGF% ECHO. >> %LOGF% ECHO. > %FILE% FOR/R%%AIN(%FILTER%)DO( ECHO %%A ECHO %%A >> %LOGF% ECHO -- %%A -- >> %FILE% FOR/F"TOKENS=1* DELIMS=: EOL="%%XIN('FINDSTR /N "^" %%A')DO( ECHO.%%Y >> %FILE% ) ECHO. >> %FILE% ) ECHO. >> %FILE% GOTOLA_ENDBATCH REM * ========================================================================================================= REM * コマンドチェック REM * ========================================================================================================= :LA_CHECK_COMAND ECHO %1 > tmp.text SETRET= FOR/F"usebackq"%%tIN(`findstr%choice%tmp.text`)DOSETRET=%%t DELtmp.text IF'%RET%'==''( GOTOLA_INPUT_MISSING ) EXIT/b REM * ========================================================================================================= REM * 入力ミス REM * ========================================================================================================= :LA_INPUT_MISSING ECHO. SET/pmiss=入力に誤りがあります。 GOTOLA_STARTBATCH REM * ========================================================================================================= REM * バッチ終了処理 REM * ========================================================================================================= :LA_ENDBATCH ECHO. SET/pend=終了するにはEnterキーを押してください... ECHO [%DATE% %TIME%] バッチ処理終了 >> %LOGF% EXIT |
実行イメージ
確認メッセージが表示されるので「y」を入力して Enter を押します。
終了メッセージが表示されれば完了です。
出力されたファイル
同じディレクトリに「RESULT.TXT」という名前でファイルが出力されます。
といった感じです。
バッチって便利ですよね。
大したものではないですが何かのお役に立てれば。。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません