Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.


jamesla

85 posts

Master Geek


#53850 14-Dec-2009 14:12
Send private message

Hi guys long story short why doesn't this work?



C:\>echo sddsfsdfd > "%date%.txt"
The system cannot find the path specified.


If I use:


C:\>echo sddsfsdfd > %date%.txt


It works but because %date% = Mon 14/12/2009 (and there is a space between Mon and 14)


It will save the file as just Mon.txt






How do I get it to save as Mon 14/12/2009.txt???

Create new topic
bazzer
3438 posts

Uber Geek
+1 received by user: 267

Trusted

  #282331 14-Dec-2009 15:06
Send private message

It might be because the filename can't contain "/"?



BartManGeek
187 posts

Master Geek


  #282337 14-Dec-2009 15:24
Send private message

try the following:
Set FileDate=%date:/=%
C:\>echo sddsfsdfd > %FileDate%.txt

Set FileDate=%date:/=%
Strips the "/" from the date.

Set FileDate=%date:/=-%
Will swap the "/" for "-"





Rural Geek - Technology Solutions

"On two occasions I have been asked [by members of Parliament!], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question." -- Charles Babbage

bazzer
3438 posts

Uber Geek
+1 received by user: 267

Trusted

  #282342 14-Dec-2009 15:30
Send private message

Or if you change the short date separator from "/" to "-", it will work too.



lurker
838 posts

Ultimate Geek
+1 received by user: 223

Lifetime subscriber

  #282346 14-Dec-2009 15:40
Send private message

You can also break up the date output into separate tokens with a FOR command, eg:

for /F "tokens=1-2 usebackq delims== " %%f in ('%date:/=%') do set a=%%g.txt
echo Testing > %a%

would give you filename something like 14122009.txt
Otherwise you still have the "Mon.txt" problem.
If you want the "Mon" included just change the set command to include "%%f".

jamesla

85 posts

Master Geek


  #282400 14-Dec-2009 17:41
Send private message

awesome cheers guys that works, kind of feel like an idiot now :-)

jamesla

85 posts

Master Geek


  #282441 14-Dec-2009 19:08
Send private message

hmm I'm trying to fix %time% up now :D

How would I write a for loop like the one lurker did above to change the way %time% displays

C:\Users\james>echo %time%
19:07:18.92

I want it in this format 1907


This is as far as I have got but man batch files can be bloody confusing...


for /f "tokens=1,2 delims=:" %%i in ('%time%') do SET time=%%i%%j
echo %time%

 
 
 

Support Geekzone with one-off or recurring donations Donate via PressPatron.
lurker
838 posts

Ultimate Geek
+1 received by user: 223

Lifetime subscriber

  #282467 14-Dec-2009 20:39
Send private message

You forgot the usebackq parameter, try putting that in between your token & delimiter ones and it should work.

Create new topic








Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.