We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Simple batch file to compare dates and email

Medium Priority
551 Views
Last Modified: 2013-11-09
Ok, Who knew this would be so complicated, but I am trying.

So all I want to do is compare 2 files, and email me if one is older then the other, I do this with 2 Batch files, one I got from here on EE, and the other I wrote to use the latter.

My file is the problem I think.  If I use the EE batch form the command line, it works fine, but for some reason the EE batch is not working when I try to pass it commands

the output for the EE batch below is this;

Archaeobase[0001].4BK
datefile[1].txt
~6,4TestTime:~0,5%TestTime:~-2,1%TestTime:~11,5
2009/02/11P02:40


This appears to me like the Arch file is not being processed correctly from the EE batch file, but for the life of me I can't figure out why

:(  please help
------------
-Check.bat file, I made this
------------
echo off
for /f "tokens=*" %%a in ('dir c:\4dBackup\Archaeobase* /b') do set arch=%%a
for /f "tokens=*" %%b in ('dir c:\4dBackup\Ethnobase* /b') do set ethno=%%b
set yesterday=datefile[1].txt
 
call Check-and-email.bat %arch% %yesterday%
call Check-and-email.bat %ethno% %yesterday%
del /f c:\4dBackup\datefile.txt
dir c:\4dBackup\ /a-d >c:\4dBackup\datefile.txt
 
 
--------------------------
- Check-and-email.bat I got this from another post on EE, it works from the command line
--------------------------
echo off
 
setlocal
 
echo %1
echo %2
 
call :FORMATSTR str1 "%~t1"
call :FORMATSTR str2 "%~t2"
 
set result="Archaeology-DB Database Backup Failed"
echo %str1%
echo %str2%
 
if /i "%str1%" GTR "%str2%" (set result="Archaeology-DB Database Backup Suceeded")
 
blat datefile.txt -t me@here.com -s %result%
 
goto :EOF
 
:FORMATSTR
 
set TestTime=%~2
set TestTime=%TestTime:~6,4%/%TestTime:~0,5%%TestTime:~-2,1%%TestTime:~11,5%
 
set %1=%TestTime%

Open in new window

Comment
Watch Question

Top Expert 2009

Commented:
Shouldn't this line

set yesterday=datefile[1].txt

Be a valid file? I think you named it

set yesterday=datefile.txt
arch=%%a
Are you thinking you have an array here?  If you combine this into one script, and make the loop:

for /f "tokens=*" %%b in ('dir c:\4dBackup\Ethnobase* /b') do set ethno=%%b

call the check each time, then that should work.  
Lofty WormIT Manager
CERTIFIED EXPERT

Author

Commented:
@AmazingTech
The datefile.txt and datefile[1].txt files are to create a file that has a modification time to compare against.  Final version they will match, but in this testing, I have made sure that the files existm the script is not failing at that point.

@developedtester
I am not completely following you.  In a batch script, any for loop variables have to have the %% in front, from the command line you only use one but in a scrip there must be 2.
I do not see how I could combine the two calls, one is working on the arch file and the other is working on the ehtno file.  In any case, I can't even get one ot work.  It passes the datefile modified time, but not the other.  I just tried this command  Check-and-email datefile.txt archaeology[0001].4bk manually, and it still fails.  could the [ ] be the problem?
Lofty WormIT Manager
CERTIFIED EXPERT

Author

Commented:
CORRECTION:
This command worked from the command line, just not when I am calling it.
Check-and-email datefile.txt archaeology[0001].4bk
Top Expert 2009

Commented:
Both scripts are in the c:\4dBackup?
Lofty WormIT Manager
CERTIFIED EXPERT

Author

Commented:
No, the are in c:\4dbackup\backup\
that is why I am fully qualifying everything
Top Expert 2009
Commented:
That's probably your problem then.

%1 is just the file name so it can't find the file Archaeobase[0001].4BK in your current directory. To get it's date.

Try adding your directory to the path. Make sure the 2 datefile*.txt is in c:\4dbackup
SET PATH=%PATH%;c:\4dbackup\backup
cd /d c:\4dbackup
check

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Lofty WormIT Manager
CERTIFIED EXPERT

Author

Commented:
THANK YOU :)
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.