我想在更新后在预览中重新加载文件(.png,.pdf)。这如何实现?如何在mac预览10.7中重新加载文件?
在OS X 10.5和10.6中,它与切换到预览一样简单 - 它会自动重新加载新文件。或者,您可以使用open -a Preview *.png
或类似的东西。在10.7中,自动重新加载不起作用(请参阅this post)。
我第一次尝试是在命令行中运行AppleScript脚本:
/usr/bin/osascript -e 'tell application "Preview.app" to activate
tell application "Preview.app" to open "'$PWD/$*'"'
这适用于单个文件,但失败,原因是显而易见的多个文件。我做了一些更多的研究和使用更复杂的AppleScript涉及set
和列表试过了,但是这会导致权限错误:
这里的Python脚本我用(我的bash脚本技能是不达字符串解析的任务): - 没有看到一个灰色的屏幕重装图片 - 我甚至不能确定这个脚本会解决我原来的问题
#!/usr/bin/env python
import optparse
import os
parser=optparse.OptionParser()
options,args = parser.parse_args()
pwd = os.getcwd()
cmd = '/usr/bin/osascript -e '
scriptcmd = "tell application \"Preview.app\" to activate\n"
flist = [ fn if fn[0]=='/' else pwd+"/"+fn for fn in args]
scriptcmd += "set myList to {\"%s\"}\n" % ('","'.join(flist))
scriptcmd += "tell application \"Preview.app\" to open myList"
print("%s \'%s\'" % (cmd,scriptcmd))
os.system("%s \'%s\'" % (cmd,scriptcmd))
,但我想知道是否有任何的方式来简单地用osascript
打开文件列表而不是open
。
编辑:试图修复AppleScript的,但是这个代码被“遗漏值”的错误:
tell application "Preview.app" to activate
set myListOfImages to {":Users:adam:work:code:test.png"}
tell application "Preview.app" to open myListOfImages
谢谢,这是一个很大的AppleScript的我一无所知。有什么方法可以修改您的脚本以仅接受目录中的一部分文件和/或搜索多个扩展?我试图修改我的代码来使用:而不是/,但现在得到“缺失值”的错误...请参阅编辑示例 – keflavich 2011-12-29 16:51:29
请参阅我的编辑以获取上述问题的答案。 – regulus6633 2011-12-30 09:28:35