@echo off
cd /d %~dp0

rem WindowsタスクスケジューラのNASBackupTask事前チェック
rem 引数：SVPプログラムのインストールディレクトリ(必須)
rem 引数：削除対象のDKC製番

setlocal ENABLEDELAYEDEXPANSION
set SCNAME=HitachiDeviceManager-NASConfigBackup
set FLAG_ARG=0
set INSTDIR=%1
set TRCLOGDIR=%INSTDIR%\wk\supervisor\nasbackup\log
set TRCFILE=%INSTDIR%\wk\supervisor\nasbackup\log\nasbackupbatdump.txt

rem トレースログファイルの存在確認（引数確認も兼ねる）
if not EXIST %TRCLOGDIR% (
  set TRCFILE="log\nasbackupbatdump.txt"
  GOTO ERROR
)
echo %date% %time% [%0] Start. >> %TRCFILE%

rem タスクが登録済みかどうか確認
echo %date% %time% [%0] Schtasks /Query /tn %SCNAME% >> %TRCFILE%
Schtasks /Query /tn %SCNAME% 2>> %TRCFILE%
if %ERRORLEVEL%==0 (
  echo %date% %time% [%0] INFO:NASCongifigBackupTask is already registered.>> %TRCFILE%

　rem 引数があればDKC別のエラー通知タスクを削除
  for %%f in (%*) do (
    if !FLAG_ARG!==0 (
      set /A FLAG_ARG=FLAG_ARG+1
    ) else (
      CALL :DELETE_ERRORTASK %%f
    )
  )

  CALL :DISABLE
  CALL :TASKKILL
  GOTO END
)
echo %date% %time% [%0] INFO:NASCongifigBackupTask is not registered.>> %TRCFILE%

GOTO END


rem バックアップタスクを無効化する
:DISABLE
echo %date% %time% [%0] Schtasks /Change /tn %SCNAME% /DISABLE >> %TRCFILE%
Schtasks /Change /tn %SCNAME% /DISABLE  2>> %TRCFILE%
if ERRORLEVEL 1 (
  echo %date% %time% [%0] ERROR:Failed to disable NASConfigBackupTask.>> %TRCFILE%
  GOTO ERROR
)
rem echo %date% %time% [%0] INFO:Succeeded to disable NASConfigBackupTask.>> %TRCFILE%
exit /b 0


rem エラー通知タスクを削除する
:DELETE_ERRORTASK
echo %date% %time% [%0] Schtasks /Query /tn "%SCNAME%-Notification-%1"  >> %TRCFILE%
Schtasks /Query /tn "%SCNAME%-Notification-%1"  2>> %TRCFILE%
if %ERRORLEVEL%==0 (
  echo %date% %time% [%0] Schtasks /Delete /tn "%SCNAME%-Notification-%1" /f  >> %TRCFILE%
  Schtasks /Delete /tn "%SCNAME%-Notification-%1" /f  2>> %TRCFILE%
  if ERRORLEVEL 1 (
　  echo %date% %time% [%0] ERROR:Failed to delete "%SCNAME%-%1". >> %TRCFILE%
  )else (
rem echo %date% %time% [%0] INFO:Succeeded to delete "%SCNAME%-%1".>> %TRCFILE%
  )
) else (
  echo %date% %time% [%0] ERROR:"%SCNAME%-%1" is not exist.>> %TRCFILE%
)

exit /b 0


rem 動作中のバックアッププロセスがあればキルする
:TASKKILL
echo %date% %time% [%0] TASKKILL /IM "NASBackup.exe" /T /F  >> %TRCFILE%
TASKKILL /IM "NASBackup.exe" /T /F 2>> %TRCFILE%
echo %date% %time% [%0] TASKKILL /IM "ManageNASBackup.exe" /T /F  >> %TRCFILE%
TASKKILL /IM "ManageNASBackup.exe" /T /F 2>> %TRCFILE%
exit /b 0



:ERROR
echo %date% %time% [%0] ERROR END.>> %TRCFILE%
exit /b 1

:END
echo %date% %time% [%0] END.>> %TRCFILE%
exit /b 0
