File Extension change

This is suppose to be straightforward but it's not, I need to change the file extension using a batch job on files with .txt extension to .bak, what the simplest way.

Thx
Roberto Madro R.Programmer AnalystAsked:
Who is Participating?
 
Bill PrewConnect With a Mentor Commented:
And this will even work at a DOS command line if you don't want to run it from the actual folder:

ren "c:\temp\ee\*.txt" *.bak

I don't understand why you would want to call a VBS script to do this one line DOS command, from a BAT file.  Am I missing something?

~bp
0
 
ShizzoCommented:
All .TXT files?
0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
Yes,

And that's my issue, I need to retain the name(s) of the file(s) but only change their extension.
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Bill PrewCommented:
At a command prompt you can just do this from that folder:

REN *.TXT *.BAK

~bp
0
 
mcsweenConnect With a Mentor Sr. Network AdministratorCommented:
I would use vbscript for this.  Save the code below to a .vbs and change "C:\MyFolder\" to the folder you want to work from.

Option Explicit
Dim fso, strFldr, colFiles, objFile

strFldr = "C:\MyFolder\"
Set fso = CreateObject("Scripting.FileSystemObject")

Set colFiles = fso.GetFolder(strFldr).Files

For Each objFile In colFiles
	If Eval ("txt" = fso.GetExtensionName(objFile)) Then
		fso.MoveFile objFile.path, Left(objFile.path,Len(objFile.path) - 3) & "bak"
	End If
Next

Open in new window

0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
NO, "Ren" expects a literal in the second half of the command, "*. etc." works well with Delete, Copy, etc., not with "Ren"
0
 
ShizzoCommented:
ren *.txt *.bak will work if they are all in one folder.
0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
How do I invoke this?
0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
How do I call up this vbscript?
0
 
mcsweenSr. Network AdministratorCommented:
Open Notepad and paste the code in then save it with a .vbs extension.  To call it just double click it.

You can call it from the command line too

cscript.exe C:\Path\To\Script.vbs

Open in new window

0
 
Bill PrewCommented:
The command I suggested will certainly work fine, here's an example.

C:\Temp\ee>dir
 Volume in drive C is Windows 7
 Volume Serial Number is 0000-0000

 Directory of C:\Temp\ee

12/27/2012  01:17 PM    <DIR>          .
12/27/2012  01:17 PM    <DIR>          ..
12/27/2012  01:17 PM                 2 1.txt
12/27/2012  01:17 PM                 2 2.txt
12/27/2012  01:17 PM                 2 3.txt
               3 File(s)              6 bytes
               2 Dir(s)   4,508,450,816 bytes free

C:\Temp\ee>ren *.txt *.bak

C:\Temp\ee>dir
 Volume in drive C is Windows 7
 Volume Serial Number is 0000-0000

 Directory of C:\Temp\ee

12/27/2012  01:17 PM    <DIR>          .
12/27/2012  01:17 PM    <DIR>          ..
12/27/2012  01:17 PM                 2 1.bak
12/27/2012  01:17 PM                 2 2.bak
12/27/2012  01:17 PM                 2 3.bak
               3 File(s)              6 bytes
               2 Dir(s)   4,508,454,912 bytes free

Open in new window

~bp
0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
Thanks, it worked,

Can I call a .vbs from a batch file (I'm thinking I should be able to), what do you think?

Thx
0
 
mcsweenConnect With a Mentor Sr. Network AdministratorCommented:
sure can just call it like this in your batch file.

cscript.exe C:\Path\To\Script.vbs

Open in new window

0
 
Roberto Madro R.Programmer AnalystAuthor Commented:
In good hands with EE, Thanks to both of you "mcsween" & "billprew".
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.