我正在尝试制作一个非常简单的AppleScript,但我遇到了一个问题,无法从这里继续前进。
我的程序应该做的非常简单。它读取文本文件,拆分它的内容以生成数组,然后执行shell脚本以利用mac终端的say命令读取并将文本保存到.wav文件中。
在终端上,我可以使用以下方法保存wav格式的文件:
say -o "hello.wav" --data-format=LEF32@32000 "hello world"
我试图模仿我的AppleScript中的代码无济于事,这是代码:
set theFile to (choose file with prompt "Select a file to read:" of type {"TXT"})
open for access theFile
set fileContents to (read theFile)
close access theFile
set everyLine to every paragraph of fileContents
repeat with theLine in everyLine
set thisOne to split(theLine, ";")
set fileName to item 1 of thisOne
do shell script "say -o" & item 1 of thisOne & ".wav --data-format=LEF32@32000 " & item 3 of thisOne
end repeat
to split(someText, delimiter)
set AppleScript's text item delimiters to delimiter
set someText to someText's text items
set AppleScript's text item delimiters to {""} --> restore delimiters to default value
return someText
end split
运行此代码会产生Opening output file failed: -43
。
即使是简单的do shell script "say -o hello.aiff hello
也会返回相同的错误。
我非常感谢任何帮助,包括告诉我,我根本无法做到这一点,我应该学习一门正确的编程语言:))
答案 0 :(得分:1)
该脚本没有权限将文件保存在根目录下。您可以使用管理员权限运行脚本,也可以将文件保存到其他位置,例如主目录。
do shell script "say -o $HOME/hello.aiff hello"