Wednesday, October 23, 2013

Windows Batch Scripting: Date format manipulation

Just a quick note on date manipulation.

So what does it mean when you see the following in a script:

set /a y=%date:~-4%
set /a d=%date:~07,2%
set /a m=%date:~-10,2%

easy as pie. First you need to know the date format you will be using:

echo %date%
Tue 10/15/2013

Now, here's what our code above means.
Set /a y - Of course, you set the value for y for year.
%date:~-4% - you call on the date as with the echo command earlier. But only display the value starting from -4 up to the last character. The negative value indicates that you should count from the last character of the date value. from here, -4 lands on the number 2. It will then display from that number up to the last which is 2013.

Set /a d - d is for day.
%date:~07,2% - Similar from the above, it calls the date and counts from the positive 7th character. The number 2 then indicates that you should read 2 characters starting from character 7. From our example, the value is 15.

set /a m - m for month, obviously :)
%date:~-10,2% - lastly, as another example, you count from the last digit up to the 10th character. Display 2 digits from the 10th character which is 10.

The example above shows that we can use either a negative or positive values in setting the date value on a variable.

No comments:

Post a Comment