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]

Advertisements
Standard

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s