我需要在所选文件夹的子文件夹中添加计数器模式。
到目前为止我的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
出于某些不明原因,我只收到以下错误:Babel REPL
所以命令name = Unter.Name
似乎不起作用,我不知道为什么。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
找到解决方案。 正如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
如您所见,我将name.EndsWith("B1")
替换为InStr(name,"B1")>0