Actually, I got this question from the reader of my previous blog post about VBScript to Replace Underscores in Filename with Spaces for All Files in a Folder, and I decided to answer it here.
Question from Justin:
I tried something simular..but modified your VBS..
'========================================================
' VBScript to replace underscore in file name with space
' for each files in a folder
' Written by ApOgEE of http://coderstalk.blogspot.com
'========================================================
Dim sName
Dim fso
Dim fol
' create the filesystem object
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
' get current folder
Set fol = fso.GetFolder(".")
' go thru each files in the folder
For Each fil In fol.Files
' check if the file name contains underscore
If InStr(1, fil.Name, "The ") <> 0 Then
' replace underscore with space
sName = Replace(fil.Name, "The ", "") & ", The"
' rename the file
fil.Name = sName
End If
Next
' echo the job is completed
WScript.Echo "Completed!"
i have Files in a given folder that has Names in them...
ie.
The Last Star Fighter
Gone with the wind
The Good, the Bad, and the Ugly.
With the modified VBS above Ive run it and i get the following...
Last Star Fighter.mp4, TheHow do i get rid of the extention in the middle of the name? What am I doing wrong?
Gone with the Wind
Good, the Bad, and the Ugly.mp4, The
My First answer:
Dear Justin,
check your code again. Search for line of code containing
"sName = Replace"and remove the code after ')'.
Specifically, the code:
'& ", The"'have to be removed.
Justin Replies:
Ok i Changed the Line in question...and Reran the code...
Now i get...
Gone with the Wind --ok
Good, the Bad, and the Ugly --Problem
Last Star Fighter --Problem
They Should read...
Gone with the Wind
Good, the Bad, and the Ugly, The
Last Star Fighter, The
My Answer:
If that is the case, you should get and strip the file extension before you replace the name and add it back to the filename after replacement. Here is the snippet:
' get the file extension
sExtension = fso.GetExtensionName(fil.Name)
' strip the extension from file name
sName = Replace(fil.Name, "." & sExtension, "")
' replace the whatever and put the extension back
sName = Replace(sName, "The ", "") & ", The" & "." & sExtension
and your new code should look like this:
'========================================================Good luck!
' VBScript to replace underscore in file name with space
' for each files in a folder
' Written by ApOgEE of http://coderstalk.blogspot.com
'========================================================
Dim sName
Dim fso
Dim fol
' create the filesystem object
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
' get current folder
Set fol = fso.GetFolder(".")
' go thru each files in the folder
For Each fil In fol.Files
' check if the file name contains underscore
If InStr(1, fil.Name, "The ") <> 0 Then
'replace underscore with space
'sName = Replace(fil.Name, "The ", "") & ", The"
' get the file extension
sExtension = fso.GetExtensionName(fil.Name)
' strip the extension from file name
sName = Replace(fil.Name, "." & sExtension, "")
' replace the whatever and put the extension back
sName = Replace(sName, "The ", "") & ", The" & "." & sExtension
' rename the file
fil.Name = sName
End If
Next
' echo the job is completed
WScript.Echo "Completed!"
沒有留言:
張貼留言