所以,就是这样。如何使用AppleScript写入文本文件?
我试过谷歌搜索,但答案似乎已经好几年了,我不确定这几天应该是什么样的首选成语。
答案 0 :(得分:22)
on write_to_file(this_data, target_file, append_data) -- (string, file path as string, boolean)
try
set the target_file to the target_file as text
set the open_target_file to ¬
open for access file target_file with write permission
if append_data is false then ¬
set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file
可以通过以下方式清除与它的接口......
my WriteLog("Once upon a time in Silicon Valley...")
on WriteLog(the_text)
set this_story to the_text
set this_file to (((path to desktop folder) as text) & "MY STORY")
my write_to_file(this_story, this_file, true)
end WriteLog
答案 1 :(得分:9)
纯AppleScript中的简短版本:
set myFile to open for access (choose file name) with write permission
write "hello world" to myFile
close access myFile
似乎没有本机命令解决方案。相反,您必须打开并稍后关闭该文件。
答案 2 :(得分:8)
我还了解到,如果一个人只想向文件吐出一些文本,那么快速破解就是使用shell。
do shell script "echo TEXT > some_file.txt"
答案 3 :(得分:8)
@JuanANavarro。
使用shell时,您应该使用引用形式的作为TEXT和文件路径。 这将有助于阻止文件名中的空格和文本中的撇号等字符的错误,例如。
set someText to "I've also learned that a quick hack, if one only wants to spit a bit of text to a file, is to use the shell."
set textFile to "/Users/USERNAME/Desktop/foo.txt"
do shell script "echo " & quoted form of someText & " > " & quoted form of textFile
以上脚本运行正常。
如果我没有&引用形式的someText
但我有& someText 我会收到以下错误。
错误" sh:-c:第0行:在寻找匹配的“''
时意外的EOFsh:-c:第1行:语法错误:意外结束文件" 2号
" I' ve "被视为命令的一部分。
如果我有
将textFile设置为" / Users / USERNAME / Desktop / some foo.txt" 作为我的文件路径(注意空格。)并且没有&引用形式的textFile ,但我有&文本文件强>
然后当文件被写出时,它将写入名为" some "的文件。而不是" 一些foo.txt "
答案 4 :(得分:3)
对于我来说,运行do shell脚本在300万次循环执行时在PowerBook G4上太慢了;),但当然这更快写入有时是有道理的。您还希望转义shell字符,如下所示:
做shell脚本“echo”&报价形式的foobar& “>> some_file.txt”
出于审美原因,我会使用
告诉我做shell脚本“#...”
但是我还没有验证(我相信)如果“执行shell脚本”在“告诉Finder”的块中,例如它是创建子shell的Finder进程。用“告诉我做shell脚本”至少脚本编辑器日志对我来说更好看。 ;)