重命名文件的一部分

时间:2016-02-29 18:18:01

标签: vbscript rename file-rename

我需要一个VBScript来查找文件夹中的最新文件并重命名。我已经能够编写脚本,以便找到最新的文件。但是,我无法弄清楚如何在识别后正确重命名文件。我已经能够使用基本名称重命名该文件,确认脚本有效。

文件名需要在中间添加字母“A”。

该文件已保存为20160229_TITLES,且需要成为20160229A_TITLES

下面是我试图提取年份并添加“A”的脚本。我想如果我可以把年份添加到开头,我可以在月份和年份中添加。日期将始终是当前日期。这会继续导致错误消息。

Option Explicit

Dim fso, folder, file, Date, recentFile
Dim folderName, searchFileName, renameFileTo

folderName   = "C:\Ticket\Test\"

Set fso = CreateObject("Scripting.FileSystemObject")  
Set folder = fso.GetFolder(folderName)  
Set recentFile = Nothing

For Each file In folder.Files    
    If (recentFile is Nothing) Then 
        Set recentFile = file
    ElseIf FormatDateTime(file.DateLastModified) = Date Then 
        Set recentFile = file 
    End If
Next

recentFile.Name = Replace(recentFile.Name, "_", "A_")

2 个答案:

答案 0 :(得分:0)

假设文件名总是由日期后跟下划线和其他文本组成,你可以做几件事:

  • 用“A_”替换下划线(如果名称中只有一个下划线):

    file.Name = Replace(file.Name, "_", "A_")
    
  • 将名称拆分为第一个下划线,将“A”附加到第一个片段并将片段重新连接在一起:

    arr = Split(file.Name, "_", 2)
    arr(0) = arr(0) & "A"
    file.Name = Join(arr, "_")
    
  • 进行正则表达式替换:

    Set re = New RegExp
    re.Pattern = "^(\d{8})_"
    file.Name = re.Replace(file.Name, "$1A_")
    

答案 1 :(得分:0)

@Ansgar提供的答案帮助我正确地重命名了文件,但是,我了解到该脚本只搜索了比任何其他文件更新的文件并将其重命名。以下脚本正确重命名今天修改的文件。谢谢你的帮助@Ansgar。 :)

{{1}}