我需要一个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_")
答案 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}}