我真的很困惑这个。我想要的只是要打开的列表中的文件。这是我的代码
set FilesList to {"Users/XXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP/Tutorials/artNotesfromFeng.rtf", "Users/XXXXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP"}
repeat with theFiles in FilesList
delay 0.1
tell application "Finder" to open POSIX file (theFiles)
end repeat
那么,为什么这不起作用,但这将是???
tell application "Finder" to open POSIX file "Users/XXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP/Tutorials/artNotesfromFeng.rtf"
我认为它可能与列表正在使它成为一个字符串有关,当我将它直接插入open命令时,它看起来像一个字符串,但它不是真的......我不是知道
现在我想我只需要强制它,并为每个文件创建一个新的声明。
由于
答案 0 :(得分:3)
不确定那里发生了什么,我同意这令人困惑。
另一种方法是使用shell'open'命令。
repeat with filePath in FilesList
do shell script "open " & quoted form of filePath
end repeat
shell似乎对POSIX路径更满意,诀窍是发送POSIX路径的“引用形式”。
- 编辑: 放入var也是有效的。
repeat with theFiles in FilesList
set f to POSIX file theFiles
tell application "Finder" to open f
end repeat
似乎Finder导致强制解决POSIX文件问题。
答案 1 :(得分:0)
其中任何一项都有效:
set l to {"/bin", "/etc"}
repeat with f in l
tell application "Finder" to open (POSIX file (contents of f) as alias)
end repeat
set l to {"/bin", "/etc"}
repeat with f in l
POSIX file f
tell application "Finder" to open result
end repeat
尝试运行此脚本:
set l to {"/bin", "/etc"}
repeat with f in l
f
end repeat
最后的结果是item 2 of {"/bin", "/etc"}
。 contents of
返回引用对象的目标。
我不知道为什么POSIX file f
在tell application "Finder"
块内无效,或者为什么POSIX file f as alias
可以正常工作。