如何用AutoIt将特定文件夹内的Playwright录制视频重命名为录制时间?
AutoIt实现Playwright视频文件按时间重命名
核心实现方案
针对Playwright生成的默认命名视频文件(如video-1.mp4),通过以下步骤完成按时间重命名:
- 定位视频存储文件夹
- 筛选出未按日期格式命名的文件
- 获取文件时间戳并格式化为指定命名规则
- 原地完成重命名操作
完整代码示例
#include <File.au3> ; 替换为你的Playwright视频实际存储路径 Local $sVideoDir = "C:\Your\Playwright\Video\Folder" ; Playwright默认生成mp4格式视频,可按需修改 Local $sFileExt = "*.mp4" ; 初始化文件查找句柄 Local $hSearch = FileFindFirstFile($sVideoDir & "\" & $sFileExt) If $hSearch = -1 Then MsgBox(0, "提示", "未找到目标视频文件") Exit EndIf ; 遍历所有视频文件 Local $sFileName = FileFindNextFile($hSearch) While $sFileName <> "" ; 跳过已按日期命名的文件(匹配yyyyMMdd_开头的格式) If Not StringRegExp($sFileName, "^[0-9]{8}_") Then Local $sFullPath = $sVideoDir & "\" & $sFileName ; 获取文件创建时间(改为FileGetTime($sFullPath,1)可获取修改时间) Local $aTime = FileGetTime($sFullPath) ; 格式化为yyyyMMdd_HHmmss.mp4 Local $sNewName = $aTime[0] & $aTime[1] & $aTime[2] & "_" & $aTime[3] & $aTime[4] & $aTime[5] & ".mp4" Local $sNewFullPath = $sVideoDir & "\" & $sNewName ; 避免覆盖已有文件 If Not FileExists($sNewFullPath) Then ; 同一文件夹内FileMove等价于重命名 If FileMove($sFullPath, $sNewFullPath) Then ConsoleWrite("重命名成功:" & $sFileName & " → " & $sNewName & @CRLF) Else ConsoleWrite("重命名失败:" & $sFileName & @CRLF) EndIf Else ConsoleWrite("文件已存在,跳过:" & $sNewName & @CRLF) EndIf EndIf $sFileName = FileFindNextFile($hSearch) WEnd ; 关闭查找句柄 FileClose($hSearch)
关键细节说明
- 路径配置:务必将
$sVideoDir替换为你实际的视频存储路径 - 时间维度:默认使用文件创建时间,若需要基于修改时间命名,调整
FileGetTime的第二个参数为1 - 命名规则:当前命名格式为
yyyyMMdd_HHmmss.mp4,可根据需求调整时间拼接逻辑 - 冲突处理:增加了文件存在检查,防止覆盖已重命名的文件
- 筛选逻辑:通过正则表达式过滤已按日期命名的文件,确保只处理目标文件
内容的提问来源于stack exchange,提问作者Tyler Williams
相关产品推荐
相关产品推荐

