Unfortunately I have been unable to locate a timing feature in batch scripting so all timing must be done using the Task Scheduler in order to do what you want.
Make the start of the Checkinn.bat file look like this:
@echo off
cls
setlocal enabledelayedexpansion
for /f "delims=*" %%1 in (runit.dat) do (
set runit=%%1
)
if "%runit%"=="No" exit
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
color 1c
set/p run= CAN BACKUP BE RUN NOW? (Y/N)...
cls
if "%run%"=="y" call :start
if "%run%"=="Y" call :start
exit
:start
:: Checkinn.bat
and the end of the script to this:
echo No>runit.dat
exit
Create the file C:\runit.dat containing just the word "Yes" without the quotes.
Create the following script and save it as filename.bat:
@echo off
cls
echo Yes>runit.dat
Task scheduling Suggestions.
===================
Schedule the main script to run at the times you want, 3 6 9 and 12 pm (note that according to the specs I extracted from your post, these times to not include any backup in Shift A which I have noted as being 4 am to 2pm daily, please confirm). Also schedule the script to start 5 mins after the above times.
This will allow the script to run at the appointed hours and at five mins after those times if backup does not proceed.
Schedule filename.bat to run at say 3.20 6.20 9.20 and 12.20 pm