【bat】フォルダの末尾に日付を追加してバックアップ

作業フォルダの末尾に日付を追加してバックアップします。
設計や開発時にファイルサーバーやSVNサーバが使えない場合、
日々のバックアップで利用しました。

1@ECHO OFF
2REM コピーします。
3SET DIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%
4SET DIR_FULL_NAME=D:\test_%DIR_NAME%
5 
6REM ディレクトリを作成する。実行結果をNULに流し、標準エラー出力および標準出力とする。
7MKDIR %DIR_FULL_NAME% > NUL 2>&1
8XCOPY /Y /D /E C:\Users\ユーザ名\Desktop\test %DIR_FULL_NAME%
9REM /Y:同名のファイルが存在する場合、上書きの確認を行わない
10REM /D:コピー先に同名のファイルが存在する場合に更新日が新しいファイルのみコピーする
11REM /E:ファイルが存在しなくてもディレクトリごとコピーする
12REM /EXCLUDE:file nameを使うとコピー除外もできる

【bat】エビデンスの取得効率化(全ケース)

少しでもエビデンスの取得を効率化するために、
下記手順でテストを行うことを想定。
今回は全ケースを一括実行します。

  1. 01_BEFORE_UT.batを実行
  2. テスト実行
  3. 02_AFTER_UT.batを実行

DBはDB2としています。

  • 01_BAFORE_UT.bat

    1@ECHO OFF
    2REM ケースごとのフォルダは作成済とします。
    3REM コマンドプロンプトを立ち上げ、「db2cmd 01_BAFORE_UT.bat」で実行します。
    4 
    5REM *************************************************************
    6REM  DB設定(各自の設定に変更してください。)
    7REM *************************************************************
    8SET SERVER_I=XXXXX
    9SET USER_ID=YYYYY
    10SET USER_PASS=ZZZZZ
    11 
    12REM *************************************************************
    13REM  DB2接続
    14REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    15REM    -v:コマンドテキストを標準出力にエコーする。
    16REM *************************************************************
    17db2 -tv connect to %SERVER_ID% user %USER_ID% using %USER_PASS%;
    18 
    19REM *************************************************************
    20REM  エビデンスフォルダ設定
    21REM    /b:フルパスを表示しない。
    22REM    /ad:フォルダー名のみ表示する。
    23REM *************************************************************
    24DIR /b /ad > file_list.txt
    25SETLOCAL ENABLEDELAYEDEXPANSION
    26FOR /f %%a IN (file_list.txt) DO (
    27    SET EVI_DIR=%%a
    28    SET SQL_OUTPUT=!EVI_DIR!\10_SQL_LOG_Before
    29    MKDIR !SQL_OUTPUT!
    30    ECHO !SQL_OUTPUT!
    31 
    32    REM *************************************************************
    33    REM  SQL実行
    34    REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    35    REM    -v:コマンドテキストを標準出力にエコーする。
    36    REM    -f:ファイル名を指定する。SQL文をファイルから読み込む。
    37    REM *************************************************************
    38    db2 -tvf select_AAA.sql > %SQL_OUTPUT%\select_AAA.log
    39)
    40ENDLOCAL
    41DEL file_list.txt
    42 
    43REM *************************************************************
    44REM  DB2切断
    45REM *************************************************************
    46db2 connect reset
  • 02_AFTER_UT.bat
    ログフォルダの作成とログファイルの取得を追加する。

【bat】エビデンスの取得効率化

少しでもエビデンスの取得を効率化するために、
下記手順でテストを行うことを想定。

  1. 01_BEFORE_UT.batを実行(第1引数にフォルダ名(ケース番号)を指定)
  2. テスト実行
  3. 02_AFTER_UT.batを実行(第1引数にフォルダ名(ケース番号)を指定)

DBはDB2としています。

  • 01_BAFORE_UT.bat

    1@ECHO OFF
    2REM 実行時の第1引数にエビデンス用のフォルダ名(ケース番号)を指定してください。
    3REM コマンドプロンプトを立ち上げ、「db2cmd 01_BAFORE_UT.bat フォルダ名」で実行します。
    4 
    5REM *************************************************************
    6REM  エビデンスフォルダ設定
    7REM *************************************************************
    8SET EVI_DIR=%1
    9SET SQL_OUTPUT=%EVI_DIR%\10_SQL_LOG_Before
    10MKDIR %EVI_DIR%
    11MKDIR %SQL_OUTPUT%
    12 
    13REM *************************************************************
    14REM  DB設定(各自の設定に変更してください。)
    15REM *************************************************************
    16SET SERVER_I=XXXXX
    17SET USER_ID=YYYYY
    18SET USER_PASS=ZZZZZ
    19 
    20REM *************************************************************
    21REM  DB2接続
    22REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    23REM    -v:コマンドテキストを標準出力にエコーする。
    24REM *************************************************************
    25db2 -tv connect to %SERVER_ID% user %USER_ID% using %USER_PASS%;
    26 
    27REM *************************************************************
    28REM  SQL実行
    29REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    30REM    -v:コマンドテキストを標準出力にエコーする。
    31REM    -f:ファイル名を指定する。SQL文をファイルから読み込む。
    32REM *************************************************************
    33db2 -tvf select_AAA.sql > %SQL_OUTPUT%\select_AAA.log
    34 
    35REM *************************************************************
    36REM  DB2切断
    37REM *************************************************************
    38db2 connect reset
  • 02_AFTER_UT.bat

    1@ECHO OFF
    2REM 実行時の第1引数にエビデンス用のフォルダ名(ケース番号)を指定してください。
    3REM コマンドプロンプトを立ち上げ、「db2cmd 02_AFTER_UT.bat フォルダ名」で実行します。
    4 
    5REM *************************************************************
    6REM  エビデンスフォルダ設定
    7REM *************************************************************
    8SET EVI_DIR=%1
    9SET SQL_OUTPUT=%EVI_DIR%\20_SQL_LOG_After
    10SET LOG_OUTPUT=%EVI_DIR%\30_BATCH_LOG
    11MKDIR %SQL_OUTPUT%
    12MKDIR %LOG_OUTPUT%
    13 
    14REM *************************************************************
    15REM  DB設定(各自の設定に変更してください。)
    16REM *************************************************************
    17SET SERVER_I=XXXXX
    18SET USER_ID=YYYYY
    19SET USER_PASS=ZZZZZ
    20 
    21REM *************************************************************
    22REM  DB2接続
    23REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    24REM    -v:コマンドテキストを標準出力にエコーする。
    25REM *************************************************************
    26db2 -tv connect to %SERVER_ID% user %USER_ID% using %USER_PASS%;
    27 
    28REM *************************************************************
    29REM  SQL実行
    30REM    -t:SQLファイル内のセミコロンをステートメント終了文字とする。
    31REM    -v:コマンドテキストを標準出力にエコーする。
    32REM    -f:ファイル名を指定する。SQL文をファイルから読み込む。
    33REM *************************************************************
    34db2 -tvf select_AAA.sql > %SQL_OUTPUT%\select_AAA.log
    35 
    36REM *************************************************************
    37REM  DB2切断
    38REM *************************************************************
    39db2 connect reset
    40 
    41REM *************************************************************
    42REM  ログファイル取得
    43REM *************************************************************
    44copy \\サーバーホスト名\12345\xxxx.log %LOG_OUTPUT%

【bat】WinBatで自動ログイン

ファイルサーバにログインする際、接続情報を毎回手打ちして、
ログインするのが面倒なので、自動ログインします。

デスクトップでも好きな場所に「ファイル名.bat」ファイルを作成します。

ファイルの中身を記載します。

1@echo off
2SET COMMON_USR=ユーザ名
3SET COMMON_PASS=パスワード
4 
5echo ホスト名ログイン中
6net use ホスト名/ディレクトリ名 /USER:%COMMON_USR% %COMMON_PASS%
7 
8pause

接続できない場合、接続情報が残ってしまっていることがあるので、
コマンドプロンプト上で下記コマンドで削除します。

1net use ホスト名/ディレクトリ名 /delete