Solved

Date Problem

Posted on 2013-06-07
8
257 Views
Last Modified: 2013-06-11
I have a batch file in it I have the following:

set "mm=%date:~4,2%   This gives me 06, just what I want
set /a monthback=%date:~4,2%-1 this gives me 5

How can I make set /a monthback=%date:~4,2%-1 gives me 05, instead of 5?

Thank you,
Lori
0
Comment
Question by:NLITech
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 20

Accepted Solution

by:
dsacker earned 500 total points
ID: 39230755
set /a monthback=%date:~4,2%+99
set monthback=%monthback:~-2%
0
 

Author Closing Comment

by:NLITech
ID: 39230771
Thank you!
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39230795
Be careful there.... 0x is octal so it WILL break in August if your date format has leading zeroes.

set /a month=09+99
Invalid number.  Numeric constants are either decimal (17),
hexadecimal (0x11), or octal (021).

If you know that it will have leading zeroes try:

et /a monthback=1%date:~4,2%+99
set monthback=%monthback:~-2%

i.e 108+99 = 207

Much better use something like this independent of your date format:
http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_1153-Using-dates-in-batch-files-scripts.html

Steve
0
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 
LVL 55

Expert Comment

by:Bill Prew
ID: 39230939
I have some thoughts on this, but would like to understand what you need.  It looks like you want to take the current month, and get the prior month?  If so, how do you want the result formatted, with a leading zero to always be two characters, or just a 1 or 2 digit number without any leading 0.  What do you want to happen in January, do you want to get 0 or 12 as the "prior month"?

~bp
0
 
LVL 55

Expert Comment

by:Bill Prew
ID: 39230979
Here's how I'd go about it.

@echo off
REM Add 100 to current month, subtract 1
set /a MonthBack=1%DATE:~4,2%-1
REM If current month was February, "wrap" to December (and not 00)
if %MonthBack% == 100 set MonthBack=112
REM Get right two digits of result so that we are zero padded on the left
set MonthBack=%MonthBack:~-2%
REM Display prior month
echo %MonthBack%

Open in new window

~bp
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39231204
Bill - agreed, was just pointing out what he had was going to break being as this was already accepted.
0
 

Author Comment

by:NLITech
ID: 39238527
Bp is right, this did break %mm%. I did try Bp solution, and now %mm% works, but %monthback% is only giving me 5.
I will post a new better worded (hopefully) post.  

Thank you all,
Lori
0
 
LVL 43

Expert Comment

by:Steve Knight
ID: 39238581
If your date is in leading zero format Bill's script should give you the right month OK with the leadfing 0.  If you don't have leading zero then your original one should be OK.

Personally though I would do as I suggested and use VBScript or util to do it.

You could also just schedule your script to run on the last day of the previous month :-)

Steve
0

Featured Post

Enroll in June's Course of the Month

June's Course of the Month is now available! Every 10 seconds, a consumer gets hit with ransomware. Refresh your knowledge of ransomware best practices by enrolling in this month's complimentary course for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The following is a collection of cases for strange behaviour when using advanced techniques in DOS batch files. You should have some basic experience in batch "programming", as I'm assuming some knowledge and not further explain the basics. For some…
Introduction: Recently, I got a requirement to zip all files individually with batch file script in Windows OS. I don't know much about scripting, but I searched Google and found a lot of examples and websites to complete my task. Finally, I was ab…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question