@echo off
SETLOCAL enabledelayedexpansion
REM ### Winodws7,Windows10共用
REM ###
REM ### Clear_File.bat
REM ###
REM ### ファイルクリアBatchファイル
REM ###
REM ### セキュリティpatch適用自動化ツール内で作成したフラグファイル、
REM ### workファイル、StartUpに登録したショートカット及び
REM ### StartUp起動用のBatchファイルの削除を行う。
REM ###

REM ###
REM ### カレントフォルダ取得
REM ### AutoInstall.bat起動フォルダの
REM ### 一つ上のフォルダのパス取得
REM ###
set A=%~dp0
set A=%A:~0,-2%
for %%A in (%A%) do set A=%%~dpA
REM echo %A%
set MEDIA_CURRENT=%A%
REM echo MEDIA_CURRENT %MEDIA_CURRENT%

REM ###
REM ### コンソール出力制御フラグ
REM ###
set CONSOLE_OFF=0
set CONSOLE_ON=1

REM ###
REM ### ファイルを格納するフォルダ
REM ###
set DIR_FLAG=C:\DKC200\others\mssp\flag\
set DIR_BATCH=C:\DKC200\others\mssp\batch\
set DIR_LOG=C:\DKC200\others\mssp\log\
set DIR_STARTUP="%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"

REM ###
REM ### メッセージの環境変数設定
REM ###
set MSGFILE=%MEDIA_CURRENT%Message_File\message.ini

REM ###
REM ### メッセージ読み込みチェック
REM ###
set MSG_READ_CHECK="***** Message Last Line *****"

call :LOG_OUT "MSG-END-010-I-##### Start Clear_File.bat #####" %CONSOLE_OFF%

REM ###	設定ファイルが存在するか確認する
if not exist %MSGFILE% (
	call :LOG_OUT "MSG-COM-009-E-[Error] A required file can not be found." %CONSOLE_ON%
	echo %MSGFILE% >> %DIR_LOG%AutoInstall_log.txt
	call :LOG_OUT "MSG-END-020-W-[WORNING] Failed to delete AutoInstall_StartUp.bat - Shortcut.lnk." %CONSOLE_ON%
REM ###	下記メッセージは、呼び元で出力する。
REM ###	call :LOG_OUT "MSG-END-008-E-[Error END] Security Patch Installation Tool is error end." %CONSOLE_ON%
	exit /b 2
)

REM ###	設定ファイルを読み込む
for /f "usebackq tokens=1,* delims==" %%a in ("%MSGFILE%") do (
    set %%a=%%b
)

REM ###	環境変数登録チェック
IF DEFINED MSG-ZZZ-ZZZ-Z (
	REM ### 設定値チェック
	if !MSG-ZZZ-ZZZ-Z! neq !MSG_READ_CHECK! (
		call :LOG_OUT "MSG-COM-009-E-[Error] A required file can not be found." %CONSOLE_ON%
		echo %MSGFILE% >> %DIR_LOG%AutoInstall_log.txt
		call :LOG_OUT "MSG-END-020-W-[WORNING] Failed to delete AutoInstall_StartUp.bat - Shortcut.lnk." %CONSOLE_ON%
REM ###	下記メッセージは、呼び元で出力する。
REM ###	call :LOG_OUT "MSG-END-008-E-[Error END] Security Patch Installation Tool is error end." %CONSOLE_ON%
		exit /b 2
	)
) else (
	call :LOG_OUT "MSG-COM-009-E-[Error] A required file can not be found." %CONSOLE_ON%
	echo %MSGFILE% >> %DIR_LOG%AutoInstall_log.txt
	call :LOG_OUT "MSG-END-020-W-[WORNING] Failed to delete AutoInstall_StartUp.bat - Shortcut.lnk." %CONSOLE_ON%
REM ###	下記メッセージは、呼び元で出力する。
REM ###	call :LOG_OUT "MSG-END-008-E-[Error END] Security Patch Installation Tool is error end." %CONSOLE_ON%
	exit /b 2
)

REM ###
REM ### バッチの戻り値
REM ###
set ret=0

REM ### StartUpフォルダ表示(削除前の状態)
dir %DIR_STARTUP% >> %DIR_LOG%AutoInstall_log.txt

REM ### フラグフォルダ表示(削除前の状態)
dir %DIR_FLAG% >> %DIR_LOG%AutoInstall_log.txt

REM ### ログフォルダ表示(削除前の状態)
dir %DIR_LOG% >> %DIR_LOG%AutoInstall_log.txt

REM ### Batchファイルフォルダ表示(削除前の状態)
dir %DIR_BATCH% >> %DIR_LOG%AutoInstall_log.txt

REM ###
REM ### StartUpに登録したショートカット削除
REM ###
call :LOG_OUT %MSG-END-004-I% %CONSOLE_OFF%
del %DIR_STARTUP%"AutoInstall_StartUp.bat - Shortcut.lnk" /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_STARTUP%"AutoInstall_StartUp.bat - Shortcut.lnk" (
	goto LOOPEND11
)

call :LOG_OUT %MSG-END-020-W% %CONSOLE_ON%
set ret=2
goto BATCH_END
:LOOPEND11

REM ###
REM ### フラグファイル削除
REM ###
call :LOG_OUT %MSG-END-005-I% %CONSOLE_OFF%
REM ### 前提patchフラグ削除
del %DIR_FLAG%PreFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%PreFlag (
	goto LOOPEND2
)

call :LOG_OUT %MSG-END-011-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND2

REM ### SSU適用フラグ削除
del %DIR_FLAG%SSUFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%SSUFlag (
	goto LOOPEND3
)

call :LOG_OUT %MSG-END-012-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND3

REM ### 当月patch適用フラグ削除
del %DIR_FLAG%NewFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%NewFlag (
	goto LOOPEND4
)

call :LOG_OUT %MSG-END-013-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND4

REM ### リトライフラグ削除
del %DIR_FLAG%RetryFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%RetryFlag (
	goto LOOPEND5
)

call :LOG_OUT %MSG-END-014-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END

:LOOPEND5

REM ### pendingフラグ削除
del %DIR_FLAG%PendingFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%PendingFlag (
	goto LOOPEND6
)

call :LOG_OUT %MSG-END-015-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND6

REM ### 正常終了処理フラグ削除
del %DIR_FLAG%NmlEndFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%NmlEndFlag (
	goto LOOPEND61
)

call :LOG_OUT %MSG-END-027-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND61

REM ### エラー終了処理フラグ削除
del %DIR_FLAG%ErrEndFlag /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_FLAG%ErrEndFlag (
	goto LOOPEND62
)

call :LOG_OUT %MSG-END-028-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND62

REM ###
REM ### workファイル削除
REM ###
call :LOG_OUT %MSG-END-006-I% %CONSOLE_OFF%
REM ### CheckTool.batの実行結果ファイル削除
del %DIR_LOG%CheckResult.txt /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_LOG%CheckResult.txt (
	goto LOOPEND7
)

call :LOG_OUT %MSG-END-016-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND7

REM ### patchlist.txtは、削除しない
REM ### SVPに適用されているセキュリティpatch一覧ファイル削除
REM ### del %DIR_LOG%patchlist.txt /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
REM ### if not exist %DIR_LOG%patchlist.txt (
REM ### 	goto LOOPEND8
REM ### )

REM ### call :LOG_OUT %MSG-END-017-E% %CONSOLE_OFF%
REM ### set ret=2
REM ### goto BATCH_END
REM ### :LOOPEND8

REM ### セキュリティpatch一覧の一覧削除
del %DIR_LOG%patchlist_all.txt /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_LOG%patchlist_all.txt (
	goto LOOPEND9
)

call :LOG_OUT %MSG-END-018-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND9

REM ###
REM ### StartUp起動用のBatchファイル削除
REM ###
call :LOG_OUT %MSG-END-003-I% %CONSOLE_OFF%
del %DIR_BATCH%AutoInstall_StartUp.bat /f /Q >> %DIR_LOG%AutoInstall_log.txt 2>>&1
if not exist %DIR_BATCH%AutoInstall_StartUp.bat (
	goto LOOPEND10
)

call :LOG_OUT %MSG-END-019-E% %CONSOLE_OFF%
set ret=2
goto BATCH_END
:LOOPEND10

REM ###
REM ### 終了
REM ###
:BATCH_END

REM ### StartUpフォルダ表示(削除後の状態)
dir %DIR_STARTUP% >> %DIR_LOG%AutoInstall_log.txt

REM ### フラグフォルダ表示(削除後の状態)
dir %DIR_FLAG% >> %DIR_LOG%AutoInstall_log.txt

REM ### ログフォルダ表示(削除後の状態)
dir %DIR_LOG% >> %DIR_LOG%AutoInstall_log.txt

REM ### Batchファイルフォルダ表示(削除後の状態)
dir %DIR_BATCH% >> %DIR_LOG%AutoInstall_log.txt

exit /b %ret%

REM ###############################################
REM ###
REM ### メッセージ出力
REM ###
REM ### 引数
REM ### %1:メッセージ
REM ### %2:コンソール出力スイッチ（CONSOLE_OFF:0 CONSOLE_ON:1）
REM ###
REM ###############################################
:LOG_OUT

REM ### コンソールにメッセージ出力チェック
if %CONSOLE_ON%==%2 (
	REM ### コンソール出力
	set MSGMK1=%1
	set MSGMK2=!MSGMK1:~15!
	set MSGMK3=!MSGMK2:~0,-1!
	echo !MSGMK3!
)

REM ### ログファイル出力
echo [%date%-%time%] %~1 >> %DIR_LOG%AutoInstall_log.txt

exit /b 0
ENDLOCAL enabledelayedexpansion
