Solved

# File Extension change

Posted on 2012-12-27
562 Views
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
0
• 6
• 3
• 3
• +1

LVL 1

Expert Comment

ID: 38724449
All .TXT files?
0

Author Comment

ID: 38724465
Yes,

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

LVL 53

Expert Comment

ID: 38724466
At a command prompt you can just do this from that folder:

REN *.TXT *.BAK

~bp
0

LVL 21

Assisted Solution

mcsween earned 333 total points
ID: 38724481
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

0

Author Comment

ID: 38724492
NO, "Ren" expects a literal in the second half of the command, "*. etc." works well with Delete, Copy, etc., not with "Ren"
0

LVL 1

Expert Comment

ID: 38724510
ren *.txt *.bak will work if they are all in one folder.
0

Author Comment

ID: 38724511
How do I invoke this?
0

Author Comment

ID: 38724550
How do I call up this vbscript?
0

LVL 21

Expert Comment

ID: 38724556
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

0

LVL 53

Expert Comment

ID: 38724579
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

~bp
0

Author Comment

ID: 38724581
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

LVL 21

Assisted Solution

mcsween earned 333 total points
ID: 38724594
sure can just call it like this in your batch file.

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

0

LVL 53

Accepted Solution

Bill Prew earned 167 total points
ID: 38724600
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

Author Closing Comment

ID: 38724842
In good hands with EE, Thanks to both of you "mcsween" & "billprew".
0

## Featured Post

Question has a verified solution.

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

### Suggested Solutions

One of my most closely kept secrets is revealed in this discussion How to output text on the same line This question was recently posted in EE by Simon336697 (http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Batch/Q_2459…
If like me you are one who spends a lot of time working and scripting with cmd.exe, sometimes it is handy to be able to quickly view a calendar for a given month and year. This script will quickly do just that!  Save the code posted below to a .bat …
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…