VBScript重命名文件代码问题

时间:2014-07-23 08:32:30

标签: vbscript

我写了一个简单的vbscript来重命名特定文件夹中的文件。特别是从filname中删除特定内容。

我编写的脚本(下面列出)运行正常,但突出显示的部分(第二个IF-THEN语句)没有运行。我无法弄清楚代码是什么问题。我计划添加更多IF-THEN语句以从文件名中删除特定内容。

我是新手,所以请耐心等待我。有人可以帮忙吗?

Set objFS = CreateObject("Scripting.FileSystemObject")
strFolder="C:\Users\Admin2\Downloads\Compressed"
Set objFolder = objFS.GetFolder(strFolder)
For Each strFile In objFolder.Files
    strFileName = strFile.Name

    If InStr(strFileName,"(2014)") > 0 Then           
        strNewFileName = Replace(strFileName,"(2014)","")
        strFile.Name = strNewFileName
    End If        
    **If InStr(strFileName,"(digital)") > 0 Then           
        strNewFileName = Replace(strFileName,"(digital)","")
        strFile.Name = strNewFileName
    End If**
Next 

2 个答案:

答案 0 :(得分:2)

检测到类型前缀欺诈:

For Each strFile In objFolder.Files

“strFile”应该是“objFile”。危险的额外变量:

strFileName = strFile.Name

如果更改“objFile.Name”,变量“strFileName”将变为陈旧。使用变量来保存新的/所需的名称。

strNewFileName = objFile.Name

重命名文件两次将在途中松动。修改“strNewFileName”(分步骤或全部:

strNewFileName = Replace(Replace(strNewFileName, "(2014)", ""), "(digital)", "")

你真的不需要If guard,因为Replace不会改变不包含目标的字符串。)

在重命名之前检查.FileExists(strNewFileName)。

你能证明文件名中包含“(digita1)”< - 标记数字1)吗?低于大写?一个讨厌的空白?

答案 1 :(得分:0)

我希望以下代码有帮助

  Set objFS = CreateObject("Scripting.FileSystemObject")
    strFolder="pathtofolder"
    Set objFolder = objFS.GetFolder(strFolder)
    For Each objFile In objFolder.Files
            ObjFileName = ObjFile.Name
            NewFileName = Replace(Replace(ObjFileName,"(2014)",""),"(digital)","")
            Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
            If fileSystemObject.FileExists(NewFileName) Then
            Else
            ObjFile.Name = Trim(NewFileName)
            End If
        Next