Skip to content

Instantly share code, notes, and snippets.

@ramsesoriginal
Created April 20, 2012 13:48
Show Gist options
  • Save ramsesoriginal/2428817 to your computer and use it in GitHub Desktop.
Save ramsesoriginal/2428817 to your computer and use it in GitHub Desktop.
BAT: get files from Server using a scheduled task
@echo off
set sourceMapping=X:
set sourceUNC=\\Server\folder
set sourceUser=user
set destination=C:\folder
set folderBackup=Backup
set folderError=Error
set folder=Folder
set filemask=*.*
set runEveryMinutes=5
set taskname=getFiles
REM #### Dies sollte immer so stimmen ###
set source=%sourceMapping%\
set destination=%destination%\
set folderBackup=%folderBackup%\
set folderError=%folderError%\
set originalfolder=%folder%
set folder=%folder%\
REM #############################
REM # END Configuration #
REM #############################
REM #############################
REM # INITIALISATION #
REM #############################
if "%1"=="-skipTask" GOTO afterCreateTask:
echo Creating Task
schtasks /Create /sc MINUTE /MO %runEveryMinutes% /tn %taskname% /tr "\"%~fn0\" -skipTask" /F
echo Mapping Drive
NET USE %sourceMapping% %sourceUNC% /user:%sourceUser% /persistent:yes
:afterCreateTask
REM #############################
REM # Processing Files #
REM #############################
echo Processing files
echo Backup:
REM #############################
REM # Backup #
REM #############################
xcopy "%source%%folder%%filemask%" "%source%%folderBackup%%folder%" /V /C /F /Y /Z /I
if errorlevel 0 goto copyFiles
if errorlevel 1 goto endFiles
echo An error occurred during the backup of the Text files. All files will be copied to %source%%folderError%%folderBackup%
xcopy "%source%%folder%%filemask%" "%source%%folderError%%folderBackup%%folder%" /C /F /Y /Z /I
:copyFiles
REM #############################
REM # Actual copy #
REM #############################
echo Proceeding to copy the files to the correct folder
xcopy "%source%%folder%%filemask%" "%destination%%folder%" /V /C /F /Y /Z /I
set afterFileCopy=endFiles
if errorlevel 0 goto deleteCopiedFiles
if errorlevel 1 goto deleteCopiedFiles
echo An error occurred during the copying of the Text files. The files are backed up in %source%%folderBackup%.
set afterFileCopy=errorFiles
:deleteCopiedFiles
REM #############################
REM # Delete the copied files#
REM #############################
echo Deleting copied files
forfiles /p "%destination%%originalfolder%" /s -m %filemask% /c "cmd /c del /F 0x22%source%%folder%0x22\@file"
goto %afterFileCopy%
:errorFiles
echo The files containing errors will be moved to %source%%folderError%%folder%
move "%source%%folder%%filemask%" "%source%%folderError%%folder%" /Y
:endFiles
REM #############################
REM # Delete backups #
REM #############################
echo Deleting Backupts that are more then a week old
forfiles /p "%source%%folderBackup%%originalfolder%" /s -m %filemask% /d -7 /c "cmd /c del @path"
@echo on
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment