从列表中未打开的AppleScript中的POSIX路径。原始路径工作

时间:2013-08-30 04:49:11

标签: string macos applescript posix

我真的很困惑这个。我想要的只是要打开的列表中的文件。这是我的代码

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命令时,它看起来像一个字符串,但它不是真的......我不是知道

现在我想我只需要强制它,并为每个文件创建一个新的声明。

由于

2 个答案:

答案 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 ftell application "Finder"块内无效,或者为什么POSIX file f as alias可以正常工作。