替换为“。”用“ _”表示,但VBScript扩展名除外

时间:2019-02-25 15:58:46

标签: vbscript rename file-rename

我找到了以下代码:

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 file in the folder
For Each fil In fol.Files
    'check if the file name contains dot
    If InStr(1, fil.Name, ".") <> 0 Then
        'replace dot with underscore
        sName = Replace(fil.Name, ".", "_")
        'rename the file
        fil.Name = sName
    End If
Next
'echo the job is completed
WScript.Echo "Completed!"

但是,运行此.vbs文件也会更改扩展名“。”。

例如我想将file.a.1.pdf重命名为file_1_a.pdf,但将其重命名为file_1_a_pdf。

我可以对代码进行一些调整以使之成为可能吗?

1 个答案:

答案 0 :(得分:3)

仅在文件的基本名称中替换点,而不是整个名称,然后添加扩展名并重命名。

sName = Replace(fso.GetBaseName(fil.Name), ".", "_")
fil.Name = sName & "." & fso.GetExtensionName(fil.Name)