如何使用脚本重命名成对的文件



我在一个文件夹中有10个pdf文件,我正试图找到一种方法,使用脚本将它们重命名为对,使其看起来像这个

file131.pdf = order_receipt_1000.pdf
file304.pdf = invoice_1000.pdf
file542.pdf = order_receipt_1001.pdf
file194.pdf = invoice_1001.pdf

依此类推,用于接下来的8个

也许这给了您一个很好的起点。语言是Autoit。(www.autoitscript.com(

目前,该脚本将查找保存为*pdf文件的文件夹。然后创建一个包含找到的文件的新数组,第二列包含创建文件的时间。之后,最后一个For循环将文件重命名为两个文件的块。

#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $aFileList = _FileListToArray(@ScriptDir, '*.pdf', Default, True) ; change @scriptDir to the path you need
If @error = 1 Then
MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.")
Exit
EndIf
If @error = 4 Then
MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.")
Exit
EndIf
_ArrayDisplay($aFileList, "Files FOUND")
Local $a[UBound($aFileList)][2]
For $i = 0 To UBound($aFileList) - 1
$a[$i][0] = $aFileList[$i]
$a[$i][1] = FileGetTime($aFileList[$i], $FT_CREATED, $FT_STRING) ; change FT_CREATED to what you need (created, modified, ...)
Next
_ArraySort($a, 0, 0, 0, 1)
_ArrayDisplay($a, "Sorted FileList")
Local $startcount = 1000, $y = 0
For $i = 1 To UBound($a) - 1 Step 2
FileMove($a[$i][0], 'order_receipt_' & $startcount + $y & '.pdf')
FileMove($a[$i + 1][0], 'invoice_' & $startcount + $y & '.pdf')
$y += 1
Next
EndFunc   ;==>Example

最新更新