使用VBScript重命名子文件夹
我需要将计数器模式添加到所选文件夹的子文件夹中 到目前为止,我的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
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()
更接近。