使用VBScript重命名子文件夹

使用VBScript重命名子文件夹,vbscript,directory,rename,renaming,Vbscript,Directory,Rename,Renaming,我需要将计数器模式添加到所选文件夹的子文件夹中 到目前为止,我的VBScript是: AuswahlTitel = "Bitte Datei oder Verzeichnis auswählen" StartOrdner = "17" 'Arbeitsplatz Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) Set Ordner = D

我需要将计数器模式添加到所选文件夹的子文件夹中

到目前为止,我的VBScript是:

AuswahlTitel = "Bitte Datei oder Verzeichnis auswählen" 
StartOrdner = "17"  'Arbeitsplatz 
Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) 
Set Ordner = Dateiauswahl.Self 

RenameFolders(CreateObject("Scripting.FileSystemObject").GetFolder(Ordner.Path))

Sub RenameFolders(Ordner)
    Dim i, name, newName, number, a
    i = 0
    newName = ""
    For Each Unter In Ordner.SubFolders
        name = Unter.Name
        If name.EndsWith("B1") Then
            i = i + 1
            If i<10 Then
                number = "00" & i
            ElseIf i<100 Then
                number = "0" & i
            Else
                number = i
            End if
        End If
        a = Split(name,"_")
        newName = a(0) & "_" & a(1) & "_" & a(2) & "_" & a(3) & "_Heft_" & number & "_" & a(4) & "_" & a(5)
        Unter.Name = newName
    Next
End Sub
auswahlitel=“将日期定为日期”
StartOrdner=“17”Arbeitsplatz
设置Dateiauswahl=CreateObject(“Shell.Application”).BrowseForFolder(0,Auswahlitel,16,StartOrdner)
Set Ordner=Dateiauswahl.Self
重命名文件夹(CreateObject(“Scripting.FileSystemObject”).GetFolder(Ordner.Path))
子重命名文件夹(Ordner)
Dim i、名称、新名称、编号、a
i=0
newName=“”
对于Ordner.SubFolders中的每个Unter
name=Unter.name
如果name.EndsWith(“B1”),则
i=i+1
如果我找到了解决办法。
正如Lankymart在评论中提到的那样,我把.Net和VBS混在了一起

工作守则是:

AuswahlTitel = "Bitte Datei oder Verzeichnis auswählen" 
StartOrdner = "17"  'Arbeitsplatz 
Set Dateiauswahl = CreateObject("Shell.Application").BrowseForFolder(0,AuswahlTitel,16,StartOrdner) 
Set Ordner = Dateiauswahl.Self 

RenameFolders(CreateObject("Scripting.FileSystemObject").GetFolder(Ordner.Path))

Sub RenameFolders(Ordner)
    Dim i, name, newName, number, fso, Unter
    i = 0
    newName = ""
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each Unter In Ordner.SubFolders
        'Set Unter = fso.GetFolder(Unter.Path)
        name = CStr(Unter.Name)
        If (InStr(name,"B1")>0) Then
            i = i + 1
            If i<10 Then
                number = "00" & i
            ElseIf i<100 Then
                number = "0" & i
            Else
                number = i
            End if
        End If
        a = Split(name,"_")
        newName = a(0) & "_" & a(1) & "_" & a(2) & "_" & a(3) & "_Heft_" & number & "_" & a(4) & "_" & a(5)
        Unter.Name = newName
    Next
End Sub
auswahlitel=“将日期定为日期”
StartOrdner=“17”Arbeitsplatz
设置Dateiauswahl=CreateObject(“Shell.Application”).BrowseForFolder(0,Auswahlitel,16,StartOrdner)
Set Ordner=Dateiauswahl.Self
重命名文件夹(CreateObject(“Scripting.FileSystemObject”).GetFolder(Ordner.Path))
子重命名文件夹(Ordner)
尺寸i、名称、新名称、编号、fso、Unter
i=0
newName=“”
设置fso=CreateObject(“Scripting.FileSystemObject”)
对于Ordner.SubFolders中的每个Unter
'Set Unter=fso.GetFolder(Unter.Path)
名称=CStr(Unter.name)
如果(仪表(名称,“B1”)>0,则
i=i+1

如果iYou正在访问
名称
,就好像它包含一个带有属性的
对象,而它只是一个包含文件夹名称的
字符串
。这将是
name。Endswith(“B1”)
是代码失败的地方,看起来你几乎把.Net语法和VBScript混合在一起了。是的,我同时也发现了这一点。我现在让它工作,并将其作为下面的答案发布。虽然与
EndsWith()
不完全相同,但将完成这项工作,您也可以使用
如果正确(名称,2)=“B1”,然后
模拟
EndsWith()
更接近。