【问题标题】:Convert AppleScript to one line将 AppleScript 转换为一行
【发布时间】:2012-01-12 11:22:00
【问题描述】:

我正在使用 Mach Desktop 将脚本的结果回显到 Desklet,因此它必须采用以下格式:

echo '告诉应用程序“iTunes”返回当前曲目的专辑' |脚本

我只有一行可以输入数据,所以脚本需要是一个长字符串。 可能整个东西必须包含在 echo 之后的一组单引号内,如下:

echo '[整个脚本]' |脚本

如何将下面的 AppleScript 转换为一行?

set some_file to "Macintosh HD:Users:Zade:Library:Application Support:Notational Data:Words.txt" as alias
set the_text to read some_file as string
set the text item delimiters of AppleScript to ", "
set the_lines to (every text item of the_text)
return some item of the_lines

这是我正在尝试的:

echo 'set some_file to "Macintosh HD:Users:Zade:Library:Application Support:Notational Data:Words.txt" as alias -e set the_text to read some_file as string -e set the text item delimiters of AppleScript to ", " -e set the_lines to (every text item of the_text) -e return some item of the_lines' | osascript

这给出了这个错误:

107:112:语法错误:“set”不能跟在这个标识符后面。 (-2740)

【问题讨论】:

  • 不幸的是,我不知道从哪里开始,特别是因为它都在一条线上。我认为这对你们来说非常简单。
  • @Zade 你是对的,这很容易,但你只是让它变得比它需要的更复杂。有关更多信息,请参阅我的编辑。 :)
  • @Zade 我的意思是包含每个 individual 行,而不是全部。另外,错误指向哪个set?我没有使用过 Mach Desktop,但根据我对使用 osascript 的了解,这些行由 -e 分隔并包含在单引号中。
  • 没关系,我想我可以使用“osascript /Users/Zade/Library/Scripts/Words.scpt”来引用脚本。你摇滚火影!
  • 现在我有一个新问题,我打赌你可以在十秒钟内回答:stackoverflow.com/questions/8829824/…

标签: random applescript text-files


【解决方案1】:

我想你可以试试这个脚本。不过,我对您实际上想要完成的工作感到困惑,所以如果这个脚本不令人满意,我深表歉意。

echo 'set some_file to "~/Library/Application Support/Notational Data/Words.txt" as POSIX file as alias' -e 'set the_text to read some_file' -e 'set the text item delimeters of AppleScript to ","' -e 'set the lines to (every text item of the_text)' -e 'return the lines' | osascript

编辑: @Zade 那是因为Words.txt 不存在。别名仅指现有文件。因此,您必须选择一个存在的文件。这是查看文件引用的正确语法的简单方法:

set some_file to (choose file)

您会注意到文件路径由冒号 (:) 而非斜杠分隔。话虽如此,请选择一个存在的文件,然后使用该文件运行您的脚本。

【讨论】:

  • 谢谢。请参阅我更新的描述。我试图尽可能清楚,所以如果还有什么令人困惑的地方,请告诉我。你写的那行给了我以下错误:99:104:语法错误:“set”不能跟在这个标识符之后。 (-2740)
  • @Zade 它是否说是哪个“集合”导致了错误?另外,尝试从 AppleScript 编辑器运行脚本。将所有 -e 替换为换行符,并去掉所有单引号。然后,尝试运行它
  • 在 AppleScript 中它说“不能将文件 Words.txt 变成类型别名。”如果我取出“作为别名”,它会说“无法将文件转换为类型文件”。如果我也取出“作为 POSIX 文件”,也会出现同样的错误。请参阅现在添加到问题中的脚本。
  • 好的,我们到了某个地方。我不得不拿出 POSIX 部分才能找到文件。请参阅更新的说明。但现在我收到错误“无法将每一行设置为 {”entry 1”、“entry 2”、“entry 3”}。而且我认为这个脚本不会像现在这样返回一个随机条目,似乎它正在返回整个东西。
  • @Zade 很抱歉我误解了。将return the lines 更改为return some item of the lines。此外,您可能希望将强制 as string 附加到行 set the_text to read some_file
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 2021-08-22
  • 1970-01-01
相关资源
最近更新 更多