Заменить "."с "_" за исключением расширения с VBScript - PullRequest
0 голосов
/ 25 февраля 2019

Я нашел следующий код:

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 также изменяется расширение ".".

например, я хочу переименовать файл.a.1.pdf в file_1_a.pdf, но вместо этого он переименовывается в file_1_a_pdf.

Могу ли я изменить свой код, чтобы это стало возможным?

1 Ответ

0 голосов
/ 25 февраля 2019

Замените точки только базовым именем файла, а не полным именем, затем добавьте расширение и переименуйте.

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