Hi i need to implement these three in below code could you help me out.
1) Ping 5 times in case of failure
2) Perform PSExec 3 times in case of failure
3) Perform XCopy in case of failure.
@echo off
if ("%1") == ("") goto noargs
if ("%2") == ("") goto noargs
if ("%1") neq ("reboot") if ("%1") neq == ("install") if ("%1") neq == ("preview") goto CHECKARGS2
GOTO CONTINUE
:CHECKARGS2
if ("%1") neq ("REBOOT") if ("%1") neq == ("INSTALL") if ("%1") neq == ("PREVIEW") goto noargs
:CONTINUE
if exist %2 echo Using file list - %2
if exist %2 set updlist=%2
if exist %2 goto multi
if not exist %2 echo Servername specified - %2
if not exist %2 goto single
:noargs
echo Usage: Simpleupdate [Option] [servername] OR [serverlist.txt] &echo.&echo Options: Preview (check for updates only)&echo Install (install updates but do not reboot)&echo Reboot (install updates and reboot if required) &echo.&echo Example: Simpleupdate install MyIISbox(This will install updates on the server named MyIISbox. &echo.&echo Example: Simpleupdate preview servers.txt (This will check for updates against all servers in the txt file listed.) &Echo.&echo A log output file is created in format ServerName_patch(XYZ) where X=Number of updates found, Y specifies S-uccess/F-ail/E-rror, and Z = Reboot required Y/N. &goto end
goto end
:multi
echo Option specified: %1
FOR /F "eol=; tokens=1* delims=, " %%a in (%updlist%) do (
echo ***********************************************************
Echo Running Simple Update on %%a...
echo ***********************************************************
if NOT exist logs\ md logs\
if exist C:\Temp\%%a.cmd del C:\Temp\%%a.cmd
if NOT exist C:\Temp\ MD C:\Temp\
echo @echo off>>C:\Temp\%%a.cmd
echo echo Checking server up status with ping %%a...>>c:\temp\%%a.cmd
echo ping -n 5 %%a>null>>c:\temp\%%a.cmd
echo if ERRORLEVEL == 1 goto noreach>>c:\temp\%%a.cmd
echo.
echo echo Checking for Access on %%a...>>C:\temp\%%a.cmd
echo if not exist \\%%a\c$ goto noaccess>>c:\temp\%%a.cmd
echo.
echo.
echo cscript //NOLOGO CheckPSexeSvc.vbs %%a>>C:\Temp\%%a.cmd
echo %%a >>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt"
echo xcopy supdate.exe \\%%a\c$\localbin\ /Z /Y>>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% NEQ 0 echo.Error in performing the xcopy on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateErrorlogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% EQU 0 echo.Success in performing the xcopy on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateSuccesslogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo if exist logs\*_patch*.log del logs\*_patch*.log>>C:\Temp\%%a.cmd
echo if exist c:\localbin\*_patch*.log del c:\localbin\*_patch*.log>>C:\Temp\%%a.cmd
echo if exist \\%%a\c$\localbin\*_patch*.log del \\%%a\c$\localbin\*_patch*.log>>C:\Temp\%%a.cmd
echo title %%a>>c:\temp\%%a.cmd
echo psexec -n 300 -h -s \\%%a cmd /c "title %%a&hostname&echo Running Simple Update...&cd \localbin\&supdate -%1">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% NEQ 0 echo.Error in performing the psexec on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateErrorlogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo psexec -n 300 -h -s \\%%a cmd /c "title %%a&hostname&echo Running Simple Update...&cd \localbin\&supdate -%1">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% EQU 0 echo.Sucesss in performing the psexec on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateSuccesslogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
echo goto cleanup>>c:\temp\%%a.cmd
echo :noreach>>c:\temp\%%a.cmd
ECHO.
ECHO.
echo echo CANNOT CONNECT to %%a on %%date%% %%time%% ! Skipping patch execution!^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt">>C:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-no-access* del .\LOGS\%%a-no-access-*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
echo COPY /Y NUL .\logs\%%a_patch-NOT-REACHABLE.log>>c:\temp\%%a.cmd
echo goto nopatch>>c:\temp\%%a.cmd
echo :noaccess>>c:\temp\%%a.cmd
ECHO.
ECHO.
ECHO echo ACCESS DENIED to %%a on %%date%% %%time%% ! Skipping patch execution!^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-not-reachable.log del .\LOGS\%%a-not-reachable.log*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
echo COPY /Y NUL .\logs\%%a_patch-NO-ACCESS.log>>C:\TEMP\%%a.cmd
echo goto nopatch>>c:\temp\%%a.cmd
echo :cleanup>>c:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-not-reachable.log del .\LOGS\%%a-not-reachable.log*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-no-access* del .\LOGS\%%a-no-access-*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
ECHO if exist \\%%a\c$\localbin\*_patch*.log COPY /Y \\%%a\C$\localbin\*_patch*.log .\LOGS>>C:\Temp\%%a.cmd
echo :nopatch>>c:\temp\%%a.cmd
echo exit>>c:\temp\%%a.cmd
REM echo if exist c:\temp\%%a.cmd del C:\Temp\%%a.cmd>>c:\temp\%%a.cmd
echo.
start "%%a" cmd /k "C:\Temp\%%a.cmd&del c:\temp\%%a.cmd&title %%a - DONE"
echo COLOR E>>C:\Temp\%%a.cmd
)
goto end
:single
if exist C:\Temp\%%a.cmd del C:\Temp\%%a.cmd
if NOT exist C:\Temp\ MD C:\Temp\
IF EXIST C:\TEMP\PATCHTHIS1.TXT DEL C:\TEMP\PATCHTHIS1.TXT
ECHO %2>C:\TEMP\PATCHTHIS1.TXT
set updlist=c:\temp\patchthis1.txt
goto multi
:end
if exist c:\temp\patchthis1.txt del c:\temp\patchthis1.txt
1) Ping 5 times in case of failure
2) Perform PSExec 3 times in case of failure
3) Perform XCopy in case of failure.
@echo off
if ("%1") == ("") goto noargs
if ("%2") == ("") goto noargs
if ("%1") neq ("reboot") if ("%1") neq == ("install") if ("%1") neq == ("preview") goto CHECKARGS2
GOTO CONTINUE
:CHECKARGS2
if ("%1") neq ("REBOOT") if ("%1") neq == ("INSTALL") if ("%1") neq == ("PREVIEW") goto noargs
:CONTINUE
if exist %2 echo Using file list - %2
if exist %2 set updlist=%2
if exist %2 goto multi
if not exist %2 echo Servername specified - %2
if not exist %2 goto single
:noargs
echo Usage: Simpleupdate [Option] [servername] OR [serverlist.txt] &echo.&echo Options: Preview (check for updates only)&echo Install (install updates but do not reboot)&echo Reboot (install updates and reboot if required) &echo.&echo Example: Simpleupdate install MyIISbox(This will install updates on the server named MyIISbox. &echo.&echo Example: Simpleupdate preview servers.txt (This will check for updates against all servers in the txt file listed.) &Echo.&echo A log output file is created in format ServerName_patch(XYZ) where X=Number of updates found, Y specifies S-uccess/F-ail/E-rror, and Z = Reboot required Y/N. &goto end
goto end
:multi
echo Option specified: %1
FOR /F "eol=; tokens=1* delims=, " %%a in (%updlist%) do (
echo ***********************************************************
Echo Running Simple Update on %%a...
echo ***********************************************************
if NOT exist logs\ md logs\
if exist C:\Temp\%%a.cmd del C:\Temp\%%a.cmd
if NOT exist C:\Temp\ MD C:\Temp\
echo @echo off>>C:\Temp\%%a.cmd
echo echo Checking server up status with ping %%a...>>c:\temp\%%a.cmd
echo ping -n 5 %%a>null>>c:\temp\%%a.cmd
echo if ERRORLEVEL == 1 goto noreach>>c:\temp\%%a.cmd
echo.
echo echo Checking for Access on %%a...>>C:\temp\%%a.cmd
echo if not exist \\%%a\c$ goto noaccess>>c:\temp\%%a.cmd
echo.
echo.
echo cscript //NOLOGO CheckPSexeSvc.vbs %%a>>C:\Temp\%%a.cmd
echo %%a >>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt"
echo xcopy supdate.exe \\%%a\c$\localbin\ /Z /Y>>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% NEQ 0 echo.Error in performing the xcopy on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateErrorlogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% EQU 0 echo.Success in performing the xcopy on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateSuccesslogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo if exist logs\*_patch*.log del logs\*_patch*.log>>C:\Temp\%%a.cmd
echo if exist c:\localbin\*_patch*.log del c:\localbin\*_patch*.log>>C:\Temp\%%a.cmd
echo if exist \\%%a\c$\localbin\*_patch*.log del \\%%a\c$\localbin\*_patch*.log>>C:\Temp\%%a.cmd
echo title %%a>>c:\temp\%%a.cmd
echo psexec -n 300 -h -s \\%%a cmd /c "title %%a&hostname&echo Running Simple Update...&cd \localbin\&supdate -%1">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% NEQ 0 echo.Error in performing the psexec on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateErrorlogfile - %%date:/=-%%.txt">>C:\Temp\%%a.cmd
echo psexec -n 300 -h -s \\%%a cmd /c "title %%a&hostname&echo Running Simple Update...&cd \localbin\&supdate -%1">>C:\Temp\%%a.cmd
echo if %%ERRORLEVEL%% EQU 0 echo.Sucesss in performing the psexec on %%a on %%date%% %%time%% ^>^>"SimpleUpdateLogs/SimpleupdateSuccesslogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
echo goto cleanup>>c:\temp\%%a.cmd
echo :noreach>>c:\temp\%%a.cmd
ECHO.
ECHO.
echo echo CANNOT CONNECT to %%a on %%date%% %%time%% ! Skipping patch execution!^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt">>C:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-no-access* del .\LOGS\%%a-no-access-*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
echo COPY /Y NUL .\logs\%%a_patch-NOT-REACHABLE.log>>c:\temp\%%a.cmd
echo goto nopatch>>c:\temp\%%a.cmd
echo :noaccess>>c:\temp\%%a.cmd
ECHO.
ECHO.
ECHO echo ACCESS DENIED to %%a on %%date%% %%time%% ! Skipping patch execution!^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-not-reachable.log del .\LOGS\%%a-not-reachable.log*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
echo COPY /Y NUL .\logs\%%a_patch-NO-ACCESS.log>>C:\TEMP\%%a.cmd
echo goto nopatch>>c:\temp\%%a.cmd
echo :cleanup>>c:\temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-not-reachable.log del .\LOGS\%%a-not-reachable.log*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a-no-access* del .\LOGS\%%a-no-access-*^>^>"SimpleUpdateLogs/Simpleupdatelogfile - %%date:/=-%%.txt" >>C:\Temp\%%a.cmd
ECHO IF EXIST .\LOGS\%%a_patch* del .\LOGS\%%a_patch*>>C:\Temp\%%a.cmd
ECHO if exist \\%%a\c$\localbin\*_patch*.log COPY /Y \\%%a\C$\localbin\*_patch*.log .\LOGS>>C:\Temp\%%a.cmd
echo :nopatch>>c:\temp\%%a.cmd
echo exit>>c:\temp\%%a.cmd
REM echo if exist c:\temp\%%a.cmd del C:\Temp\%%a.cmd>>c:\temp\%%a.cmd
echo.
start "%%a" cmd /k "C:\Temp\%%a.cmd&del c:\temp\%%a.cmd&title %%a - DONE"
echo COLOR E>>C:\Temp\%%a.cmd
)
goto end
:single
if exist C:\Temp\%%a.cmd del C:\Temp\%%a.cmd
if NOT exist C:\Temp\ MD C:\Temp\
IF EXIST C:\TEMP\PATCHTHIS1.TXT DEL C:\TEMP\PATCHTHIS1.TXT
ECHO %2>C:\TEMP\PATCHTHIS1.TXT
set updlist=c:\temp\patchthis1.txt
goto multi
:end
if exist c:\temp\patchthis1.txt del c:\temp\patchthis1.txt
Phanikiran Pisipati