标签: applescript

如何使用applescript在photoshop(cs5)中获取当前打开的文件路径?

如何使用applescript在photoshop(cs5)中获取当前打开的文件路径?

我在Mac OSX 10.7上使用CS5

我已经尝试了下面的答案,它在Applescript编辑器中给出了以下错误:

error "Adobe Photoshop CS5 got an error: Can’t get document 1.
Invalid index." number -1719 from document 1
Run Code Online (Sandbox Code Playgroud)

photoshop applescript

5
推荐指数
1
解决办法
3574
查看次数

如何从终端启动applescript.scpt文件并传递术语/变量?

我有一个苹果脚本可以做这些事情:

using terms from application "Quicksilver"
    on open theseitems
        repeat with aitem in theseitems
            display dialog aitem as text
        end repeat
    end open
end using terms from
Run Code Online (Sandbox Code Playgroud)

但我想做的是能够applescript.scpt通过终端开始运行特定文件并传入变量,如文件路径.

osascript ~/applescript.scpt /path/to/my/file.txt
Run Code Online (Sandbox Code Playgroud)

然后让Applescript运行并访问该参数.在这种情况下,它(希望)会显示该路径的对话框,/path/to/my/file.txt

我知道我可以做类似的事情

osascript -e "display dialog "~/path/to/file.txt"
Run Code Online (Sandbox Code Playgroud)

但关键是不要显示Applescript的对话框,而是更多地了解我是否能够将变量传递给脚本文件.

macos terminal command-line applescript

5
推荐指数
1
解决办法
1万
查看次数

检查与Applescript/Automator的有效互联网连接

我有一个Automator工作流来ping服务器,并下载我经常使用的计划的最新副本.然后将此计划复制到我的保管箱,以便我可以在手机上查看.在工作流程下载最新计划之前,它会从dropbox中删除旧计划.

除非我没有活动的互联网连接,否则这种方法很有效.当我没有活动的互联网连接时,工作流程仍然会打开Dropbox,删除旧计划,并尝试下载最新的计划.因为没有连接,所以不会下载任何内容.然后,如果我的连接变为活动状态,则空的保管箱将同步,并且计划将从我的手机中删除.

我正在尝试添加几行AppleScript代码来ping服务器以查看我是否有活动连接.如果我不这样做,那么等待大约5秒钟再次ping.我希望有5次ping尝试,此时如果我仍然没有活动连接,那么我想完全退出.

我对applecript很新,所以我对如何处理来自命令的错误感兴趣,在这种情况下,ping.如果命令"ping -o www.apple.com"失败,请等待5秒钟并重试ping.如果5次尝试失败,则完全退出.

applescript action automator

5
推荐指数
2
解决办法
8740
查看次数

如何在AppleScript中的处理程序中有效地构建列表?

AppleScript文档建议以下代码有效地构建列表:

set bigList to {}
set bigListRef to a reference to bigList
set numItems to 100000
set t to (time of (current date)) --Start timing operations
repeat with n from 1 to numItems
    copy n to the end of bigListRef
end
set total to (time of (current date)) - t --End timing
Run Code Online (Sandbox Code Playgroud)

注意使用显式引用.这在脚本的顶级或显式运行处理程序中工作正常,但如果您在另一个处理程序中逐字运行相同的完全代码,如下所示:

on buildList()
    set bigList to {}
    set bigListRef to a reference to bigList
    set numItems to 100000
    set t to (time of (current date)) --Start timing operations …
Run Code Online (Sandbox Code Playgroud)

performance applescript reference list handler

5
推荐指数
1
解决办法
198
查看次数

如何使用ScriptEngine从Javascript输出到Java

通过这个简单的AppleScript,我可以列出iTunes中所有歌曲的名称

tell application "iTunes"
    set mainLibrary to library playlist 1
    repeat with nexttrack in (get every track of mainLibrary)
        try
            name of nexttrack
        end try
    end repeat
end tell
Run Code Online (Sandbox Code Playgroud)

然后我使用ScriptEngine将其作为Java 7代码运行,但是很明显如何获取脚本的结果,在这种情况下只是最后一个轨道的名称.

    StringBuilder script =new StringBuilder();
    script.append("tell application \"iTunes\"\n");
    script.append("set mainLibrary to library playlist 1\n");
    script.append("repeat with nexttrack in (get every track of mainLibrary)\n");
    script.append("try\n");
    script.append("name of nexttrack\n");
    script.append("end try\n");
    script.append("end repeat\n");
    script.append("end tell\n");
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("AppleScript");
    System.out.println(engine.eval(script.toString()));

How do can I capture the name …
Run Code Online (Sandbox Code Playgroud)

java scripting applescript scriptengine

5
推荐指数
1
解决办法
2268
查看次数

如何在applescript中创建记录列表

我需要一个使用applescript创建的记录列表.我正在尝试在Applescript中创建一个像Hash Table这样的Java.

set grocery_list to {"milk", "butter", "eggs"}
set milk to {name:"Whole Milk", quantity:"1 Gallon", brand:"Newland Farms" }
set butter to {name:"Unsalted Butter", quantity:"1 pound", brand:"Land O Lakes"}
set eggs to {name:"Grade A jumbo eggs", quantity:"1 dozen", brand:"Farm Fresh"}
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来创建这种结构,我可以访问以下内容:

遍历列表,获取单个项目,每个项目获得品牌.

我试过这个

say brand of (item 1 of grocery_list)
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误

Can’t get brand of \"milk\"." number -1728 from brand of "milk"
Run Code Online (Sandbox Code Playgroud)

有没有推荐的方法来实现这个?

提前致谢

applescript hashtable

5
推荐指数
1
解决办法
5578
查看次数

Python中的Python代码由py2app提供

我正在使用mac osx 10.8.5在python中创建一个应用程序我通过使用将python脚本转换为应用程序py2app.但是,在app中,On Show Package Contents-->Contents-->Resources原始代码存在.我不希望通过分发我的应用程序作为安全问题来向其他人显示我的代码.我用(.pyc)代码删除了(.py)代码,在这种情况下,应用程序无法正常工作.请为它提供一些方法.我也搜索其他问题,但没有得到预期的结果.我的setup.py是

from setuptools import setup

APP=['myapp.py']
DATA_FILES= [('',['config.cfg'])]
OPTIONS={'iconfile':'cc.icns','argv_emulation': True,'plist':{'CFBundleShortVersionString':'1.0'}}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app']
    ) 
Run Code Online (Sandbox Code Playgroud)

python macos applescript py2app

5
推荐指数
1
解决办法
762
查看次数

Applescript打开终端,运行命令和显示 - 不工作

我正在尝试创建一个keyhortcut来打开当前文件夹中的终端.环顾四周,我发现这个代码创建了一个服务(添加了这个服务的快捷方式的部分就解决了),只添加了一些东西是"; clear"和一些"激活"所以它显示

on run {input, parameters}

tell application "Finder"
    activate

    set myWin to window 1

    set theWin to (quoted form of POSIX path of (target of myWin as alias))

    tell application "Terminal"

        activate
        tell window 1
            activate
            do script "cd " & theWin & ";clear"
        end tell

    end tell

end tell


return input

end run
Run Code Online (Sandbox Code Playgroud)

它没有像我想的那样工作.

烦恼:

  • 它在终端打开两个窗口,不知道为什么.它与添加的"激活"无关......它一直都是这样做的
  • 如果我在finder(文件夹)上选择一个项目,它会打开它的父目录,我希望它打开所选的文件夹

这是我对Applescript的第一次尝试,所以如果错误很明显我就是看不到它

提前致谢

applescript automator

5
推荐指数
2
解决办法
2万
查看次数

Automator + Applescript如何:新桌面(打开日历和提醒)

标题是我想要实现的目标.

在Automator中,我试图简单地记录打开新桌面的行为,然后在其中打开应用程序 - 但我得到了

"Watch Me Do"操作遇到错误.检查操作的属性,然后再次尝试运行工作流程

此外,如果我这样做,记录的操作是"单击桌面4按钮".

同样,我用Google搜索并找到了创建特定桌面的Applescripts(例如桌面3),但我总是打开不同数量的桌面.所以我希望Workflow能够简单地创建一个新的桌面,而不管我已经打开的数量.此外,我发现的许多Applescripts都是针对仍然拥有太空的小牛队而且我有优胜美地.

我可以弄清楚如何使脚本打开日历和提醒,所以主要问题是如何打开它或创建一个新的桌面.

macos desktop applescript automator

5
推荐指数
1
解决办法
1890
查看次数

Applescript 将 Safari 选项卡拆分为新窗口

我正在尝试编写一个脚本,将当前+所有下一个选项卡拆分到一个新窗口 \xe2\x80\x94 中,这对于组织非常有用。

\n\n

完全有可能获取当前和所有下一个选项卡的 URL,创建一个新窗口并在新选项卡中加载所有这些 URL,然后关闭原始窗口 \xe2\x80\x93 中的选项卡,但这看起来非常麻烦,慢的。

\n\n

那么,有没有什么方法可以将一组 Safari 选项卡移动到新窗口,而无需实际重新加载 URL?

\n

safari macos tabs applescript

5
推荐指数
1
解决办法
632
查看次数