1

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

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"

我在想这可能与列表可能使它成为一个字符串有关,当我将它直接插入到打开命令中时,它看起来像一个字符串,但它不是真的......我不知道

现在我想我只需要暴力破解它,并为每个文件做一个新的声明。

谢谢

4

2 回答 2

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 文件问题。

于 2013-08-30T07:25:21.960 回答
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起作用。

于 2013-08-30T09:04:48.267 回答