James Button
jamesbutton at blueyonder.co.uk
Wed Oct 22 07:22:38 CDT 2014
If you want you can use a .cmd file to check a date/time held within a text file
The following is an extract from a script I use to create a backup of whatever
files have 'changed' as denoted by a file date/timestamp greater than the last
time the backup ran - with the pfile.log holding the run date/time in the form
01/01/1900-23:08:58.78
Note the wodge of code at the start and the echo at the end to post the new
date-time.
The script was originally using the windows supplied xcopy, and then came to use
robocopy - with the tee.exe to dual the output to screen and a logfile
Some of those using the facility are not allowed to install new software - hence
the windows facilities and tee.exe that is nice, but not essential.
Oh! and the script should, ideally use a zip process for the files to avoid
too-long filenames in the backup, but KISS applied.
JimB
-------------------
Echo off
set
btimest=%date:~6,4%-%date:~3,2%-%date:~0,2%.%time:~0,2%.%time:~3,2%.%time:~6,2%
for /F "delims=/-: tokens=1,2,3" %%H in (pfile.log) do (
set bdatest=%%I-%%H-%%J
set bdaterc=%%J%%I%%H
)
Echo %btimest% %bdatest% >nul:
Echo btimest (%btimest%) is the datetime entry for the folder >nul:
Echo bdatest (%bdatest%) is the date of the prior run from the logfile >nul:
Echo So - make and goto new folder "backup on %btimest%" and xcopy with \date
%bdatest%>nul:
Echo Then post param btimest (%btimest%) into the log file >nul:
Echo If not before date ask about overwrite /c /f /h /s /-y /d:%bdatest%
>nul:
Echo This script is about to copy files updated on, or after %bdatest% into a
folder named "%USERNAME% on %btimest%" on this partition (drive)
Pause
Echo in the following commands >nul:
Echo .\ means the current folder and bdatest is the earliest date
(mm-dd-yyyy) of files to be copied >nul:
Echo HOMEDRIVE and HOMEPATH point to the system variables for the
users 'personal' storage area >nul:
Echo Note the use above of USERNAME within the folder name to hold
this users set of backups >nul:
Echo - for Robocopy options enter command ROBOCOPY /?
>nul:
Echo Robocopy /256 option not used so system should copy files with
long names - accessing them is your problem >nul:
Echo Robocopy /MON:10 option not used - it would rerun the copy if
more than 10 files in the folder change again >nul:
Echo Robocopy /MOT:10 option not used - it would rerun the copy in
10 mins if any files in the folder change again >nul:
Echo Robocopy /MAXAGE:yyyymmdd is the equivalent to xcopy
/d:mm-dd-yyyy >nul:
Echo Robocopy /R:3 and /W:2 set retries limited to 3 with 2
second wait - Don't expect user to close an open file >nul:
Echo Robocopy /XJ options set to avoid copying files via their
'JUNCTION-NAME' >nul:
Echo Robocopy /FP /TS /NP logging options set to list fullnamename
and timestamp of copied files >nul:
Echo Robocopy /TEE and /LOG+:robocopyactivity.log set so actions
will be displayed and added to the named file >nul:
Echo on
cd "\backup of c"
mkdir "%USERNAME% on %btimest%"
cd "%USERNAME% on %btimest%"
rem Robocopy "%HOMEDRIVE%%HOMEPATH%\My Documents"
".\%COMPUTERNAME%%HOMEPATH%\My Documents" *.* /S /ZB /COPY:DAT /R:3 /W:2
/FP /TS /NP /TEE /LOG+:robocopyactivity.log /MAXAGE:%bdaterc%
xcopy "%HOMEDRIVE%\My Documents\*.*" ".\%COMPUTERNAME%\My
Documents\" /c /f /h /s /-y /d:%bdatest%
xcopy "%HOMEDRIVE%%HOMEPATH%\Desktop\*.*"
".\%COMPUTERNAME%\%HOMEPATH%\Desktop\" /c /f /h /s /-y /d:%bdatest%
Pause Please check the summary, and data files listed above include all that you
expect
dir /s
cd \
echo %date%-%Time% >pfile.log
Pause Please check the data files (listed above) as now being in the new folder
include all that you expect
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Wednesday, October 22, 2014 1:47 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] One Accdr (front end) for each User's PC or Share
theAccdr file on the File Server
Ah-ha! So you're using scriptiing, not just a simple cmd/bat file.
--
Stuart
On 21 Oct 2014 at 23:24, Darryl Collins wrote:
> Here is the snippet of code that does the read / copy bit if you are
> interested.
>
> ' Read the version text files and compare them.
> if FS.fileexists(destinationPath & "version.txt") then
> destTxtVersionFile = GetFile(destinationPath & "version.txt")
> sourceTxtVersionFile = GetFile(sourcePath & "version.txt")
> copyTheFile = not (destTxtVersionFile = sourceTxtVersionFile)
> else
> copyTheFile = true
> end if
>
> if (FS.fileexists(destinationPath & applicationname & ".accde") =
> false) then copyTheFile = true
>
> if copyTheFile then
> FS.CopyFile sourcePath & applicationName & ".accde", destinationPath
> FS.CopyFile sourcePath & "version.txt", destinationPath
> FS.CopyFile sourcePath & "Icon.ico", destinationPath
> copyOtherSpecifiedFiles
> end if
>
>
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart
> McLachlan Sent: Wednesday, 22 October 2014 9:54 AM To: Access
> Developers discussion and problem solving Subject: Re: [AccessD] One
> Accdr (front end) for each User's PC or Share theAccdr file on the
> File Server
>
> Incidentally, you don't actually need to "read" the two files to
> compare them.
>
> The simplest way is something like:
>
> FC AppVersion.txt \\server\database\AppVersion.txt > nul IF errorlevel
> 1 COPY....
>
>