在第4、6位文件夹内所有文件名中插入“-”

Insert "-" in the name of all files in a folder at position 4 and 6

我在一个必须重命名的文件夹中得到了一堆 PDF。它们都是这样构建的:YYYYMMDD_Text.pdf。系统是 Windows 7.

我想在日期之间插入一个 -,所以文件看起来像: YYYY-MM-DD_Text.pdf.

这是我得到的,但它不起作用,我搜索了十几个线程但找不到解决方案:

    Ordner = "C:\xte Stelle\Test Doku"

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Fld = fso.GetFolder(Ordner)

    For i = 0 To UBound(Arr)
        WScript.Echo i & vbTab & Arr(i)
    Next

    For Each File In Folder.Files
        File.Name = Left(File.Name, 4) & "-" & Mid(File.Name, 6) & "-" & Mid(File.Name, 8)
End Sub

编辑:

这就是我现在得到的。我可以 运行 它并没有崩溃,但也不起作用。它什么都不做。有什么想法吗?

Ordner = "C:\xte Stelle\Test Doku"

Set fso = CreateObject("Scripting.FileSystemObject")
Set Fld = fso.GetFolder(Ordner)

Sub test
    For Each File In Fld.Files
        File.Name = Left(File.Name, 4) & "-" & Mid(File.Name, 5, 2) & "-" & Mid(File.Name, 7)
    Next
End Sub

您的代码不仅不完整,而且完全错误。

  • 您有一个 End Sub 没有相应的 Sub
  • 您将文件夹对象分配给变量 Fld,但随后从变量 Folder.
  • 枚举文件
  • 您的第二个 For Each 循环缺少 Next
  • Mid函数returns第三个参数定义的字符数从第二个参数定义的位置开始。如果省略第三个参数,则返回从第三个参数定义的位置到字符串末尾的子字符串。因此,您的文件名重建应如下所示:

    File.Name = Left(File.Name, 4) & "-" & Mid(File.Name, 5, 2) & "-" & Mid(File.Name, 7)
    

注意: 如果将代码放入过程或函数中,则需要实际调用该 procedure/function 才能执行代码。