问题描述
请原谅我的无知编程。这就是为什么你天才的存在!
Excuse my programming ignorance. This is why you geniuses exist!
我想通过附表任务可以重命名一个文件每30分钟一班。
I would like to rename a single file every 30 mins via Sched task.
文件列表:
test1.txt的
的test2.txt
test3.txt
等..
test1.txttest2.txttest3.txtect..
进入:
的test.txt
的test2.txt
text3.txt
等..
Into:test.txttest2.txttext3.txtect..
的的test.txt将由程序被删除。因此,在30分钟的时间,我想的test2.txt重命名为test.txt的,以此类推,直到所有的文件都已经被处理。
The test.txt will be deleted by a program. Therefore in 30 mins time I would like test2.txt to be renamed to test.txt and so on until all the files have been processed.
鸭preciate你的帮助。找到Rename在同一时间不同的文件一个文件名,之一,但它仅复制文件。
Appreciate your help. Found Rename different files to one file name, one at a time but it only copies the file.
推荐答案
您可以检查与给定基名的文件是否存在,以及以其他方式重命名追加到基名的最小数字文件。尝试是这样的:
You could check if a file with the given basename exists and otherwise rename the file with the smallest number appended to the basename. Try something like this:
Const basename = "test"
Const srcFolder = "..."
Const extension = "txt"
Set fso = CreateObject("Scripting.FileSystemObject")
dstFile = fso.BuildPath(srcFolder, basename & "." & extension)
If fso.FileExists(dstFile) Then WScript.Quit 0 'nothing to do
For Each f In fso.GetFolder(srcFolder).Files
If LCase(fso.GetExtensionName(f.Name)) = extension Then
If LCase(Left(f.Name, Len(basename))) = basename Then
num = Mid(fso.GetBaseName(f.Name), Len(basename)+1)
If Len(num) > 0 Then
num = CInt(num)
If IsEmpty(minnum) Or minnum > num Then minnum = num
End If
End If
End If
Next
If Not IsEmpty(minnum) Then
srcFile = fso.BuildPath(srcFolder, basename & minnum & "." & extension)
fso.MoveFile srcFile, dstFile
End If
上的文件名称和号码的检查可以通过对一个普通的前pression测试简化了一点:
The checks on the file name and the number could be simplified a little by testing against a regular expression:
Set re = New RegExp
re.Pattern = "^" & basename & "(\d+)\." & extension & "$"
re.IgnoreCase = True
For Each f In fso.GetFolder(srcFolder).Files
Set m = re.Execute(f.Name)
If m.Count > 0 Then
num = CInt(m(0).SubMatches(0))
If IsEmpty(minnum) Or minnum > num Then minnum = num
End If
Next
这篇关于从目录列表中重命名一个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!