PS:原始流程由ai完成,测试和debug由本人完成,正文部分是最终结果
macOS:14.0
目录
给文件添加此刻时间后缀_YYYYMMDD
步骤1:创建Automator快速操作
- 打开Automator(你可以通过Spotlight搜索找到它)。
- 选择“新建文稿”。
- 在文稿类型中选择“快速操作”。
- 在右侧的“工作流程收到当前”下拉菜单中选择“文件或文件夹”。
- 在左侧的“库”中选择“实用工具”。
- 拖动“运行AppleScript”到工作区。
步骤2:编写AppleScript
日期格式调整为_YYYYMMDD
在“运行AppleScript”动作中,输入以下代码:
on run {input, parameters}
-- 获取当前日期,格式为 YYYYMMDD
set currentDate to do shell script "date +%Y%m%d"
repeat with anItem in input
set filePath to POSIX path of anItem
set fileName to (do shell script "basename " & quoted form of filePath)
set fileDir to (do shell script "dirname " & quoted form of filePath)
set nameComponents to my splitString(fileName, ".")
if (count of nameComponents) > 1 then
set fileExtension to "." & (item -1 of nameComponents)
set fileBaseName to (items 1 thru -2 of nameComponents) as text
else
set fileExtension to ""
set fileBaseName to fileName
end if
-- 新文件名为原文件名加上 _YYYYMMDD 后缀
set newFileName to fileBaseName & "_" & currentDate & fileExtension
set newFilePath to fileDir & "/" & newFileName
do shell script "mv " & quoted form of filePath & " " & quoted form of newFilePath
end repeat
return input
end run
on splitString(theString, theDelimiter)
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to theDelimiter
set theArray to text items of theString
set AppleScript's text item delimiters to oldDelimiters
return theArray
end splitString
步骤3:保存快速操作
- 按下Command+S或选择“文件” -> “存储”。
- 为你的快速操作命名,例如“加日期后缀_YYYYMMDD”。
- 确保快速操作保存在默认位置(~/Library/Services)。
步骤4:使用快速操作
- 打开Finder并导航到你希望加上日期后缀的文件。
- 右键点击该文件。
- 选择“快速操作” -> “加日期后缀_YYYYMMDD”(你刚才创建的快速操作)。
解释
currentDate
变量获取当前日期,格式为YYYYMMDD
。- 脚本通过
basename
和dirname
获取文件名和文件路径。 - 如果文件有扩展名,脚本会将其分离出来。
- 新文件名是原文件名加上
_YYYYMMDD
后缀。 - 使用
mv
命令重命名文件。
给文件添加更详细时间后缀_YYYYMMDD_HHMM
不止年月日,再加上24制小时和分钟的信息,日期格式调整为_YYYYMMDD
_HHMM,只有如下步骤需要改动:
步骤2:编写AppleScript
在“运行AppleScript”动作中,输入以下代码:
on run {input, parameters}
-- 获取当前日期和时间,格式为 YYYYMMDD_HHMM
set currentDateTime to do shell script "date +%Y%m%d_%H%M"
repeat with anItem in input
set filePath to POSIX path of anItem
set fileName to (do shell script "basename " & quoted form of filePath)
set fileDir to (do shell script "dirname " & quoted form of filePath)
set nameComponents to my splitString(fileName, ".")
if (count of nameComponents) > 1 then
set fileExtension to "." & (item -1 of nameComponents)
set fileBaseName to (items 1 thru -2 of nameComponents) as text
else
set fileExtension to ""
set fileBaseName to fileName
end if
-- 新文件名为原文件名加上 _YYYYMMDD_HHMM 后缀
set newFileName to fileBaseName & "_" & currentDateTime & fileExtension
set newFilePath to fileDir & "/" & newFileName
do shell script "mv " & quoted form of filePath & " " & quoted form of newFilePath
end repeat
return input
end run
on splitString(theString, theDelimiter)
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to theDelimiter
set theArray to text items of theString
set AppleScript's text item delimiters to oldDelimiters
return theArray
end splitString
解释
currentDateTime
变量获取当前日期和时间,格式为YYYYMMDD_HHMM
。- 其他部分与之前的脚本相同,主要是通过
basename
和dirname
获取文件名和文件路径。 - 新文件名是原文件名加上
_YYYYMMDD_HHMM
后缀。 - 使用
mv
命令重命名文件。