如何使用AppleScript创建新文件并自动覆盖原有旧文件
错误原因
Finder 的 make 命令没有内置 replace 配置属性,你自定义添加的 replace:true 会被系统识别为未声明的变量,因此无法实现覆盖旧文件的效果。
实现覆盖的修正代码
要实现重复运行时自动替换旧文件,只需在创建新文件前先判断目标路径是否存在同名文件,存在则先删除旧文件即可:
set targetFileName to "textfile.txt" -- 指定保存路径为Documents文件夹 set targetFolder to path to documents folder as text set targetFullPath to targetFolder & targetFileName tell application "Finder" -- 旧文件存在则先删除 if exists file targetFullPath then delete file targetFullPath end if -- 创建新文件 make new file at folder targetFolder with properties {name:targetFileName} end tell
如果需要直接彻底删除旧文件而不移入废纸篓,可以将删除逻辑替换为Shell的rm命令,执行效率更高:
-- 替换上述删除逻辑即可 do shell script "rm -f " & quoted form of POSIX path of targetFullPath
内容的提问来源于stack exchange,提问作者gurkensaas
相关产品推荐
相关产品推荐

