Computing.Net > Forums > Programming > Batch Date problem

Computer Problems? Computing.Net has over 1,000,000 posts about all things technology related! Over 90% answered within 24 hours! Click here to start participating now! Also, be sure to check out the New User Guide.

Batch Date problem

Reply to Message Icon

Name: goompa
Date: October 27, 2008 at 15:04:46 Pacific
OS: XP
CPU/Ram: misc
Product: PC
Comment:

Here is what I'm struggling with...
I have a file called 1000.wek
I would like to rename it to 1001.wek on 28/10/2008 and 1002.wek on 29/10/2008 and 1003.wek on 30/10/2008 and 1004.wek on 31/10/2008 <THEN SKIP SAT AND SUN> and 1005.wek on 03/11/2008 and 1006.wek on 04/10/2008 and 1007.wek on 05/10/2008 and 1008.wek on 06/10/2008.....

My first attempt is something like this:

(I huge batch file with a table from a spreadsheet)

if %date%="28/10/2008" ren f:\radio\week\1000.wek
if %date%="29/10/2008" ren f:\radio\week\1001.wek
if %date%="30/10/2008" ren f:\radio\week\1002.wek
if %date%="31/10/2008" ren f:\radio\week\1003.wek

I did something like this with 1 line. Obviously I have to sort out some errorlevel thingy to skip to the next line or something. I have not looked into that yet.

Are you able to help with this please?
This is on XP.



Sponsored Link
Ads by Google

Response Number 1
Name: Mechanix2Go
Date: October 27, 2008 at 18:54:56 Pacific
Reply:

"1005.wek on 03/11/2008 and 1006.wek on 04/10/2008 and 1007.wek on 05/10/2008 and 1008.wek on 06/10/2008....."

Can we assume that 04/10 is a typo and should be 04/11 ?

If so, it may boil down to 'increment num every weekday.


=====================================
If at first you don't succeed, you're about average.

M2


0

Response Number 2
Name: goompa
Date: October 27, 2008 at 20:30:03 Pacific
Reply:

Here is what I did to utilize the code you already supplied in 2007

::== runtoday.bat
@echo off
setLocal EnableDelayedExpansion

::old program data
::set /p refDATE=enter date to compare in format: YYYYMMDD
::call :now
::if !refDATE! lss !today! echo don't run
::if !refDATE! geq !today! echo run

::Johns Insertion
call :now

::This is the spreadsheet data

if !today! geq 20081028 ren f:\radio\week\*.wek 1016.wek
if !today! geq 20081029 ren f:\radio\week\*.wek 1017.wek
if !today! geq 20081030 ren f:\radio\week\*.wek 1018.wek
if !today! geq 20081031 ren f:\radio\week\*.wek 1019.wek
if !today! geq 20081103 ren f:\radio\week\*.wek 1020.wek
if !today! geq 20081104 ren f:\radio\week\*.wek 1021.wek
if !today! geq 20081105 ren f:\radio\week\*.wek 1022.wek
if !today! geq 20081106 ren f:\radio\week\*.wek 1023.wek
.............(shortened to keep you from falling asleep)
if !today! geq 20100923 ren f:\radio\week\*.wek 1513.wek
if !today! geq 20100924 ren f:\radio\week\*.wek 1514.wek
if !today! geq 20100927 ren f:\radio\week\*.wek 1515.wek
if !today! geq 20100928 ren f:\radio\week\*.wek 1516.wek
if !today! geq 20100929 ren f:\radio\week\*.wek 1517.wek
if !today! geq 20100930 ren f:\radio\week\*.wek 1518.wek


goto :eof

:now
:: use debug/BIOS to get DATE into vars

::==
@echo off > d.d

>> d.d echo E 0100 B4 2A CD 21 B4 4C CD 21
>> d.d echo N DAY.COM
>> d.d echo RCX
>> d.d echo 8
>> d.d echo W
>> d.d echo E 0100 B4 2A CD 21 88 F0 B4 4C CD 21
>> d.d echo N MONTH.COM
>> d.d echo RCX
>> d.d echo A
>> d.d echo W
>> d.d echo E 0100 B4 2A CD 21 89 C8 B4 4C CD 21
>> d.d echo N YEAR.COM
>> d.d echo RCX
>> d.d echo A
>> d.d echo W
>> d.d echo E 0100 B4 2A CD 21 88 D0 B4 4C CD 21
>> d.d echo N DAT.COM
>> d.d echo RCX
>> d.d echo A
>> d.d echo W
>> d.d echo Q

debug < d.d > nul
del d.d

dat
for %%a in (1 2 3 4 5 6 7 8 9 ) do if errorlevel %%a set dat=0%%a
for %%a in ( 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) do if errorlevel %%a set dat=%%a
echo Date %dat%

day
if errorlevel 0 set day=Sunday
if errorlevel 1 set day=Monday
if errorlevel 2 set day=Tuesday
if errorlevel 3 set day=Wednesday
if errorlevel 4 set day=Thursday
if errorlevel 5 set day=Friday
if errorlevel 6 set day=Saturday
echo Day %day%

month
for %%a in (1 2 3 4 5 6 7 8 9 ) do if errorlevel %%a set month=0%%a
for %%a in ( 10 11 12) do if errorlevel %%a set month=%%a
echo Month %month%

year
if errorlevel 215 set Year=2007
if errorlevel 216 set Year=2008
if errorlevel 217 set Year=2009
if errorlevel 218 set Year=2010
echo Year %Year%
set today=%year%%month%%dat%
echo Today is %today%
for %%c in (day month year dat) do del %%c.com
::== done

I'm really grateful for this code. I just generate the if statements in a spreadsheet.



0

Sponsored Link
Ads by Google
Reply to Message Icon

Related Posts

See More







Post Locked

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.


Go to Programming Forum Home


Sponsored links

Ads by Google


Results for: Batch Date problem

Batch Programming: problems on ECHO www.computing.net/answers/programming/batch-programming-problems-on-echo/15607.html

batch script to copy current date f www.computing.net/answers/programming/batch-script-to-copy-current-date-f/14097.html

Batch file problem with date www.computing.net/answers/programming/batch-file-problem-with-date/17190.html