Random 将AppleScript转换为一行

Random 将AppleScript转换为一行,random,applescript,text-files,Random,Applescript,Text Files,我使用Mach Desktop将脚本的结果回显到Desklet中,因此它必须采用以下格式: echo“告诉应用程序“iTunes”返回当前曲目的相册”| osascript 我只有一行输入数据,所以脚本需要是一个长字符串。 可能整个内容必须包含在echo之后的一组单引号中,如下所示: 回显“[整个脚本]”|脚本 如何将下面的AppleScript转换为一行 set some_file to "Macintosh HD:Users:Zade:Library:Application Support:

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

echo“告诉应用程序“iTunes”返回当前曲目的相册”| osascript

我只有一行输入数据,所以脚本需要是一个长字符串。 可能整个内容必须包含在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)

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

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)

您会注意到,文件路径由冒号(:)而不是斜杠分隔。说到这里,请选择一个存在的文件,并使用该文件运行脚本。

我想您可以尝试使用此脚本。不过,我对您实际想要实现的目标感到困惑,所以如果这个脚本不令人满意,我深表歉意

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部件才能找到文件。请参阅更新的说明。但是现在我得到了一个错误“不能将每一行都设置为{“条目1”,“条目2”,“条目3”}”。我认为这个脚本不会像现在这样返回一个随机条目,似乎它返回了全部内容。@Zade我很抱歉我误解了。将
返回行
更改为
返回行中的某些项
。此外,您可能希望将强制
作为字符串
附加到行
上,设置文本以读取一些内容le
谢谢。请看我的最新描述。我已经尽可能地解释清楚了,所以请告诉我是否还有什么地方让人困惑。你写的那行给了我以下错误:99:104:语法错误:一个“set”不能跟在这个标识符后面。(-2740)@Zade它说的是哪个“set”吗“是什么导致了错误?另外,请尝试从AppleScript编辑器运行脚本。用换行符替换所有-e,并去掉所有单引号。然后,尝试在AppleScript中运行它,它会显示“无法将文件Words.txt转换为类型别名”。如果我取出“作为别名”,它会显示“无法将文件转换为类型文件”。如果我也取出“作为POSIX文件”,则会出现相同的错误。请看添加到问题中的脚本。好的,我们有进展了。我必须拿出POSIX部件才能找到文件。请参阅更新的说明。但是现在我得到了一个错误“不能将每一行都设置为{“条目1”,“条目2”,“条目3”}”。我认为这个脚本不会像现在这样返回一个随机条目,似乎它返回了全部内容。@Zade我很抱歉我误解了。将
返回行
更改为
返回行中的某些项
。此外,您可能希望将强制
作为字符串
附加到行
上,设置文本以读取一些内容le
不幸的是,我不知道从哪里开始,尤其是因为它都在一行上。我想这对你们来说会非常简单。@Zade你们是对的,这很简单,但你们只是让它变得比需要的更复杂。更多信息,请参阅我的编辑。@Zade我的意思是包含每一行,而不是整个内容。还有,对吗h
set
是否有错误?我没有使用Mach Desktop,但根据我对使用
osascript
的了解,这些行由
-e
分隔并包含在单引号中。没关系,我想我可以用“osascript/Users/Zade/Library/Scripts/Words.scpt”来引用脚本“.你这个摇滚火影!现在我有一个新问题,我打赌你能在十秒钟内回答:不幸的是,我不知道从哪里开始,特别是因为它都在一条线上。我想这对你们来说会非常简单。@Zade你们是对的,这很容易,但你们只是把它变得比需要的更复杂。有关更多信息,请参见我的编辑。:)@扎德,我的意思是包含每一行,而不是全部。此外,错误指向哪个
?我没有使用Mach Desktop,但根据我对使用
osascript
的了解,这些行由
-e
分隔,并用单引号括起来。没关系,我发现我可以用“osascript/Users/Zade/Library/Scripts/Words.scpt”来引用脚本。你这个摇滚火影!现在我有一个新问题,我打赌你能在十秒钟内回答: