Solved

date format

Posted on 2012-03-12
10
422 Views
Last Modified: 2012-06-21
I am using a post processing command to copy one file to another file with a date stamp at the end of the file name.  I found an example of adding the date stamp,  but it adds the date stamp in the wrong format.  Currently, the date stamp is in the format:

YYYYDDMM

But, I need the date format to be in:

YYYYMMDD

Here is the command I'm using:

copy c:\Users\UserName\Desktop\TemplateFile.txt c:\Users\UserName\Desktop\FileName_%date:~-4,4%%date:~-7,2%%date:~-10,2%.txt

I just need to switch the month and day in the date stamp.

Thanks for any help.
Regards.
0
Comment
Question by:-Dman100-
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 43

Assisted Solution

by:Steve Knight
Steve Knight earned 250 total points
Comment Utility
You can just amend the %date:~-4,4%%date:~-7,2%%date:~-10,2% bits at a simple level:

%date:~-4,4% "YYYY"
%date:~-7,2% "DD"
%date:~-10,2% "MM"

%date:~-4,4%%date:~-10,2%%date:~-7,2%

but this highlights a general issue here in that it relies on the user who runs the command's date format, e.g. dd/mm/yyyy mm/dd/yyyy dd-mm-yyyy yyyy-mm-dd etc. and therefore is easily wrong.

Look at my article here for betters ways to do it:
http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_1153-Using-dates-in-batch-files-scripts.html

You will see in my article above an entry "yyyymmdd.cmd" at one of the last comments right down the bottom which gives you a prebuilt script that will get you yyyymmdd regardless of the user's date format.

also be aware user is quite likely to have 1/ 3/2012 rather than 01/03/2012 so there won't be leading zeroes if you want them using just %date% either.

Steve
0
 
LVL 15

Expert Comment

by:Ess Kay
Comment Utility
0
 
LVL 15

Expert Comment

by:Ess Kay
Comment Utility
yyyymmdd

select convert(varchar, getdate(), 112)
0
 
LVL 11

Accepted Solution

by:
paultomasi earned 250 total points
Comment Utility
-Dman100-

You need:

copy "c:\Users\UserName\Desktop\TemplateFile.txt" "c:\Users\UserName\Desktop\FileName_%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt"

Open in new window

0
 

Author Comment

by:-Dman100-
Comment Utility
I tried the following, but it failed?

copy c:\Users\UserName\Desktop\Template.txt
c:\Users\UserName\Desktop\FileName_%date:~-4,4%%date:~-10,2%%date:~-7,2%
.txt

It looks like I have everything correct, but the command failed?
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 1

Expert Comment

by:Turkey1974
Comment Utility
This is the format you requested:

copy c:\Users\UserName\Desktop\TemplateFile.txt c:\Users\UserName\Desktop\FileName_%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt
(just switch the -7 and -10)

As for why?  The negative number refers to the number of characters from right to left of the result of %date% to begin and the second number is how many characters you want to extract from %date% beginning at the chosen character to start with (the negative number).

Prove it, try the following at a command prompt: (use of echo will allow you to test at a command prompt)
echo %date%

This will return:
Mon 03/12/2012

Now try the following:
echo %date:~-4,4%  Result:  2012
echo %date:~-5,5%  Result:  /2012
echo %date:~-5,3%  Result:  /20
echo %date:~-10,5%  Result:  03/12
echo %date:~-10,6%%date:~-2,2%  Result:  03/12/12
echo %date:~-10,2%-%date:~-7,2%-%date:~-2,2%  Result:  03-12-12

Explore other combinations to produce the desired output.
0
 
LVL 43

Expert Comment

by:Steve Knight
Comment Utility
Can I ask why I got an "assisted" and half the marks when I gave you the answer?

Quite likely that you have spaces in the filename now as it will be 2012 312.txt or the like.  You will need either " " around the filename or use one of the techniques which works reliably as per my link.

Steve
0
 
LVL 11

Expert Comment

by:paultomasi
Comment Utility
dragon-it

>> "Can I ask why I got an "assisted" and half the marks when I gave you the answer?"

You gave a nice write-up along with a really useful link in http:#37710156 however, you didn't actually give the 'answer' he was seeking. I think he just wanted something he could copy & paste that worked straight off as provided in http:#37710240.
0
 
LVL 43

Expert Comment

by:Steve Knight
Comment Utility
Well short of actually putting the spoon in his mouth for him:

You can just amend the %date:~-4,4%%date:~-7,2%%date:~-10,2% bits at a simple level:

%date:~-4,4% "YYYY"
%date:~-7,2% "DD"
%date:~-10,2% "MM"

%date:~-4,4%%date:~-10,2%%date:~-7,2%

But then with no feedback from asker don't expect anything else.
0
 
LVL 11

Expert Comment

by:paultomasi
Comment Utility
Steve....
You know as well as I do 'the bigger the spoon, the wider the smile'!
:)
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Using dates in 'DOS' batch files has always been tricky as it has no built in ways of extracting date information.  There are many tricks using string manipulation to pull out parts of the %date% variable or output of the date /t command but these r…
TOMORROW TOMORROW.BAT is inspired by a question I get asked over and over again; that is, "How can I use batch file commands to obtain tomorrow's date?" The crux of this batch file revolves around the XCOPY command - a technique I discovered w…
This video discusses moving either the default database or any database to a new volume.
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

771 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now