2015年7月1日水曜日

Dir一覧(ROBO)

:開始

@ECHO off

:: =============環境に応じて、修正してください。=====================================
:: MODE:
:: G  :確認画面を表示しない 実際のコピーをする
:: L :
:: none    :確認画面を表示する  コピー実行する
::

SET DIR_SRC_PATH=E:\copy\from
SET DIR_DST_PATH=E:\copy\to
SET DIR_LOG_PATH=E:\log\radius

:: ==================================================================================


IF "%1"=="" (
SET Copy_OPTIONS=/COPY:DATSO /E /PURGE /L
) ELSE (

IF "%1"=="L" (
SET Copy_OPTIONS=/COPY:DATSO /E /PURGE /L
) ELSE (
SET Copy_OPTIONS=/COPY:DATSO /E /PURGE /L
)
)

SET File_sel_OPTIONS=

SET Retry_OPTIONS=/R:0 /W:1

SET YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
SET Time_edit=%time: =0%
SET HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
SET LOG_FILE=%DIR_LOG_PATH%\%YYYYMMDD%_%HHMMSS%.log

SET Log_OPTIONS=/NC /NFL /NP /TEE /LOG:%LOG_FILE%

SET Excludes_files="" ""
SET Excludes_dir="" "" ""

:: --------------------------------------------------------------

SET OPTIONS=%Copy_OPTIONS% %File_sel_OPTIONS% %Retry_OPTIONS% %Log_OPTIONS%

:: 自動生成、ROBOCOPY実行コマンドを画面表示で確認する
ECHO.
ECHO ↓↓↓↓↓ 自動生成、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
ECHO.
ECHO robocopy.exe %DIR_SRC_PATH% %DIR_DST_PATH% %OPTIONS%
ECHO.
ECHO ↑↑↑↑↑ 自動生成、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑

SET Console_input=""

ECHO ******************************************************************************
ECHO * 重要!!  バッチ処理実行確認
ECHO * ROBOモード  :%ROBOMODE%
ECHO * コピー元 :%DIR_SRC_PATH%
ECHO * コピー先   :%DIR_DST_PATH%
ECHO * 移行ログパス :%DIR_LOG_PATH%
ECHO * 移行ログ名前 :%LOG_FILE%
ECHO *
ECHO * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、
ECHO * 以下のように入力(大文字と小文字は区別なし)。
ECHO *
ECHO * start :ROBOCOPYの実行を開始します
ECHO * quit :ROBOCOPYの実行を中止し、当バッチ処理を中止
ECHO * 上記以外の文字:当バッチ処理の先頭に戻ります
ECHO ******************************************************************************

ECHO %1
IF "%1"=="G" GOTO ROBOCOPY実行

SET /P Console_input="処理続行選択(上記参照) : "

IF /I "%Console_input%"=="quit" EXIT
IF /I "%Console_input%"=="start" GOTO ROBOCOPY実行
GOTO 開始

pause

:ROBOCOPY実行

robocopy.exe %DIR_SRC_PATH% %DIR_DST_PATH% %OPTIONS%
::ECHO %ERRORLEVEL%

IF %ERRORLEVEL%==16 ECHO ***FATAL ERROR*** & GOTO END
IF %ERRORLEVEL%==8 ECHO **FAILED COPIES** & GOTO END
IF %ERRORLEVEL%==4 ECHO *MISMATCHES* & GOTO END
IF %ERRORLEVEL%==3 ECHO *XTRA COPY* & GOTO END
IF %ERRORLEVEL%==2 ECHO *EXTRA FILES* & GOTO END
IF %ERRORLEVEL%==1 ECHO *Copy successful* & GOTO END
IF %ERRORLEVEL%==0 ECHO ***no change***** & GOTO END
:END

IF "%1"=="G" GOTO ROBOCOPY終了
pause

:ROBOCOPY終了
::EXIT /b %ERRORLEVEL%
EXIT /b 0