cls :echo off setlocal :SET VARIABLES AS REQUIRED :set project=background set bckpFolder=bckp set srcFolder=src set bibFolder=bib set dirList=dirsToBckp.txt :GETTING CURRENT PROJECT NAME pushd . :cd .. :apparently this one was erroneous - would back it up with the "latex" name for all projs for /F "delims=" %%a in ('chdir') do set project="%%~na" popd :GETTING CURRENT TIME set HH=%time:~0,2% :makes sure that zero is appended to the hour if a.m. if "%HH:~0,1%"==" " set HH=0%HH:~1,2% set MM=%time:~3,2% set SS=%time:~6,2% set DD=%date:~4,2% set MO=%date:~7,2% set YY=%date:~12,2% set TIMESTAMP=%YY%%MO%%DD%-%HH%%MM%.%SS% :OTHER VARIABLES set jarBckpSrc=.\%bckpFolder%\src-%project%-%TIMESTAMP%.zip set jarBckpList=.\%bckpFolder%\listed-%project%-%TIMESTAMP%.zip set jarBckpAll=.\%bckpFolder%\all-%project%-%TIMESTAMP%.zip set jarBckpRepo=.\%bckpFolder%\repo-%project%-%TIMESTAMP%.zip :if backup folder doesnt exist we need to create it first if NOT exist %bckpFolder% mkdir %bckpFolder% :SCENARIO 1a: BACKING UP ONLY SOURCE AND BIB :=============================================== if {%1}=={src} ( jar cvfM %jarBckpSrc% %dirList% for /f %%a in ('dir /B') do ( if {%%a}=={%srcFolder%} jar uvf %jarBckpSrc% %%a if {%%a}=={%bibFolder%} jar uvf %jarBckpSrc% %%a ) :SCENARIO 1b: BACKING UP ONLY STIPULATED FOLDERS :=============================================== ) else if {%1}=={listed} ( jar cvfM %jarBckpList% %dirList% for /f "delims=" %%a in (%dirList%) do jar uvf %jarBckpList% %%a :SCENARIO 2: BACKING UP ALL FOLDERS EXCEPT BACKUP :=============================================== ) else if {%1}=={all} ( jar cvfM %jarBckpAll% %dirList% for /f %%a in ('dir /B') do if NOT {%%a}=={%bckpFolder%} jar uvf %jarBckpAll% %%a :SCENARIO 3: BACKING UP REPO :=============================================== ) else if {%1}=={repo} ( jar cvfM %jarBckpRepo% %2 :SCENARIO 4: WRONG INPUT :=============================================== ) else ( echo --- echo Arguments should be: [src], [listed], [all], or [repo repoRoot] only! echo --- ) endlocal pause