jeudi 24 octobre 2019

Why does my IF statement get stuck in a loop?

I've written a simple backup script for when we do local re-profiles. It just backs things up so that the user doesn't save anything when removing the profile. For some reason it is getting stuck at the CheckEXIST line.

If anyone is able to advise what I've done wrong, that would be really useful! Thanks.

@echo off
for /F "tokens=1,2" %%i in ('qwinsta /server:%COMPUTERNAME% ^| findstr "console"') do (set loggedInUser=%%j)

setlocal


::CHECK LOGS FOLDER
IF NOT EXIST "C:\temp\temp\logs\appsense_BACKUP_robo.txt" (
mkdir "C:\temp\logs\"
echo.>"C:\temp\logs\appsense_BACKUP_robo.txt" 
)
ELSE (



title LOCAL RE-PROFILE - C DRIVE BACKUP TOOL

color 0A
cls
:INTRO
echo LOCAL RE-PROFILE - C DRIVE BACKUP TOOL
echo Created: 23/09/2019
echo Updated: 17/10/2019
echo Version: 1.4.1
echo Owner: G Ritchie - Service Desk
echo Logs: C:\Logs
echo.
echo.
echo This tool does not guarantee that all files will be backed up.
echo Use this tool at your own risk.
echo.
echo RUN AS LOGGED IN USER.
echo Logged In User: %loggedInUser%
echo.
echo.




:STARTPROMPT
SET /P COPYORPASTE=Are you wanting to: Copy Files [1] OR Paste Files [2]?
IF /I "%COPYORPASTE%"=="1" GOTO :CHECKEXIST
IF /I "%COPYORPASTE%"=="2" GOTO :PASTEFILES
GOTO :STARTPROMPT

)


:CHECKEXIST
color 0C
IF EXIST "C:\temp\appsensebackup\" (
echo.
echo.
echo APPSENSE BACKUP FOLDER ALREADY EXISTS.
SET /P deletebackup=Would you like to: Delete Previous Backup [1] OR Cancel [2]?
)

IF /I "%deletebackup%"=="1" GOTO :REMDIR
IF /I "%deletebackup%"=="2" GOTO :DONOTDEL
GOTO :CHECKEXIST

ELSE (
GOTO :COPYFILES
)


:REMDIR
RD "C:\temp\appsensebackup" /s /q
GOTO :COPYFILES 






:COPYFILES
color 0C
robocopy "C:\Users\%loggedInUser%\Favorites" "C:\temp\appsensebackup\%loggedInUser%\iefav" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\AppData\Roaming\Microsoft\Sticky Notes" "C:\temp\appsensebackup\%loggedInUser%\stickynotes" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Desktop" "C:\temp\appsensebackup\%loggedInUser%\Desktop" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Links" "C:\temp\appsensebackup\%loggedInUser%\Links" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Documents" "C:\temp\appsensebackup\%loggedInUser%\Documents" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Music" "C:\temp\appsensebackup\%loggedInUser%\Music" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Pictures" "C:\temp\appsensebackup\%loggedInUser%\Pictures" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Videos" "C:\temp\appsensebackup\%loggedInUser%\Videos" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\Users\%loggedInUser%\Downloads" "C:\temp\appsensebackup\%loggedInUser%\Downloads" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
::Taskbar
robocopy "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" "C:\temp\appsensebackup\%loggedInUser%\Taskbar" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" "C:\temp\appsensebackup\%loggedInUser%\Taskbar\PinnedItems.reg" /y
::Start Menu
robocopy "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu" "C:\temp\appsensebackup\%loggedInUser%\StartMenu" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
reg export "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage2" "C:\temp\appsensebackup\%loggedInUser%\StartMenu\PinnedItems.reg" /y


color 0A
echo COPY COMPLETE
echo PLEASE CHECK OUTPUT REPORT FOR ANY FAILED FILES
PAUSE
EXIT





:PASTEFILES
color 0C
taskkill /IM explorer.exe /f
::Taskbar
del "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\*" /S /Q /F
robocopy "C:\temp\appsensebackup\%loggedInUser%\Taskbar" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" /f
reg import "C:\temp\appsensebackup\%loggedInUser%\Taskbar\PinnedItems.reg"
::Start Menu
del "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\*" /S /Q /F
robocopy "C:\temp\appsensebackup\%loggedInUser%\StartMenu" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage2" /f
reg import "C:\temp\appsensebackup\%loggedInUser%\StartMenu\PinnedItems.reg"
::Files
robocopy "C:\temp\appsensebackup\%loggedInUser%\iefav" "C:\Users\%loggedInUser%\Favorites" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\stickynotes" "C:\Users\%loggedInUser%\AppData\Roaming\Microsoft\Sticky Notes" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Desktop" "C:\Users\%loggedInUser%\Desktop" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Links" "C:\Users\%loggedInUser%\Links" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Documents" "C:\Users\%loggedInUser%\Documents" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Music" "C:\Users\%loggedInUser%\Music" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Pictures" "C:\Users\%loggedInUser%\Pictures" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Videos" "C:\Users\%loggedInUser%\Videos" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"
robocopy "C:\temp\appsensebackup\%loggedInUser%\Downloads" "C:\Users\%loggedInUser%\Downloads" /copy:DATO /E /XJD /tee /log+:"C:\temp\logs\appsense_BACKUP_robo.txt"


color 0A
echo COPY COMPLETE...
echo PLEASE CHECK OUTPUT REPORT FOR ANY FAILED FILES
TIMEOUT /T 1
mshta vbscript:Execute("resizeTo 0,0:MsgBox ""IMPORTANT - Start AVECTO DEFENDPOINT SERVICE as Admin Before Disconnecting"",0,""Important"":Close")
start explorer.exe
PAUSE

EXIT





:DONOTDEL
CLS
color 0A
echo COMMAND CANCELLED - APPSENSE BACKUP FOLDER ALREADY EXISTS
pause

endlocal

Expect this file to check if backup files exist, delete if they do (given confirmation) and then back up to the C:\temp\appsensebackup folder.

Aucun commentaire:

Enregistrer un commentaire