Development

Quick way to create patch files based on modified date with xcopy

Recent projects and deployment method made it difficult to simply publish changes to a web server. Had been doing it manually (check for modified files, copy and transfer) and thought it was wasting too much time each day when change requests occur. After some quick research, I realized that the simplest method would just be to use the good old “xcopy” command in windows. (this is why command prompt tools should be taught in schools). For a quick refresher on batch commands, read http://www.computerhope.com/batch.htm.

I realize that a proper source control (like Git or Subversion) would be nicer but in my case, a simple batch file is just easier to work with.

Copy and paste the following code in your deployment folder that will create a patch folder based on last modified dates of working files.

[START EVENT.BAT]

@echo off
REM – http://www.computerhope.com/batch.htm
ECHO Usage : events [patch-num] [m-d-y]

SET SRC=c:xampphtdocsevents
SET DEST=c:deploymentevents

IF (%1)==() GOTO END
IF (%2)==() GOTO TODAYDATE

ECHO Copying files modified on %2
xcopy %SRC% %DEST%%1 /D:%2 /S /C /I /Y
GOTO END

:TODAYDATE
FOR /F “tokens=1-5 delims=/ ” %%a in (“%date%”) DO SET year=%%c
FOR /F “tokens=1-5 delims=/ ” %%a in (“%date%”) DO SET month=%%b
FOR /F “tokens=1-5 delims=/ ” %%a in (“%date%”) DO SET day=%%a

SET TODAY=%month%-%day%-%year%
ECHO Copying files modified on %TODAY%

xcopy %SRC% %DEST%%1 /D:%TODAY% /S /C /I /Y

:END
@echo on

[END EVENT.BAT]

Standard