我正在尝试在 MacOS X 上使用 applescript 构建自动构建脚本。
目前一切正常,只有一个小故障。
如果我在应用程序“终端”的单独告诉中运行命令“do script (”zipalign -f -v 4 /tmp/src.apk /tmp/tgt.apk”),则它可以正常工作,但在运行时使终端窗口保持打开状态脚本中的其他所有内容在应用程序“Finder”的告诉中都工作正常。
如果我尝试通过“Finder”中的“do shell script”运行命令,我只会收到错误“command not find”。
zipalign的路径在/etc/paths中设置,并且可以通过任何终端窗口和“do shell”访问,但不能通过“do shell script”命令访问。
确保“do shell script”使用 $PATH 查找命令的正确方法是什么,或者是否有一种万无一失的方法来关闭“do script”留下的终端?
我尝试填充文本字段但不能
activate application "****"
tell application "System Events"
tell process "****"
tell text field 1 of window 1
set value of text field 1 to "here is the text"
end tell
end tell
end tell
Run Code Online (Sandbox Code Playgroud) 我遇到这个问题:在脚本编辑器中运行此脚本时,它运行良好。
tell application "iTunes"
set playerstate to get player state
end tell
display dialog playerstate
Run Code Online (Sandbox Code Playgroud)
我得到 s 玩家状态running,stopped或者paused。但是如果我将脚本导出到应用程序,我会得到类似的结果kPSS.
错误在哪里?
我是一个非常新手且很少尝试苹果脚本的人。我已经尝试了几个小时来学习执行以下任务的各个 applescript 命令,但我总是遇到错误。也许更擅长 applescript 的人会发现这项任务既简单又快捷,对此我将非常感激。这是任务:
我希望能够在查找器中手动选择文档或文件,然后对该文件执行以下 unix 命令。然后我会将脚本存储在 Finder 的“服务”菜单下。Unix命令是:
srm -rfv -m path/filename
Run Code Online (Sandbox Code Playgroud)
在我的尝试中,我认为可以打开终端并执行命令的脚本是可行的方法,但就是无法让任何东西发挥作用。预先感谢任何能为我编写这样一个脚本的优秀程序员。
我希望我的 MacBook 每次从睡眠模式恢复时运行一个脚本。
我的代码非常简单:
tell application "Finder"
if exists (disk "HDD") then
do shell script "diskutil eject HDD"
else
do shell script "diskutil mount HDD"
do shell script "diskutil eject HDD"
end if
end tell
Run Code Online (Sandbox Code Playgroud)
我在 CD-ROM 托架中安装了第二个 HDD,每次从睡眠模式恢复时,我都能听到驱动器旋转的声音,即使它的当前状态尚未安装。但在驱动器上强制执行安装/弹出命令可以解决此问题。唯一的缺点是我必须手动执行此操作;现在我想克服这个问题。
有人可以帮我解决这个问题吗?
有人可以帮我制作一个脚本来报告 uielement 的所有子元素及其属性吗?它类似于 WholeContents() 函数。这是我的递归函数。
function iterate(obj) {
for (var property in obj) {
if(obj[property] instanceof Array) {
console.log("Array: " + property + "," +obj[property])
iterate(obj[property])
} else if(obj[property] instanceof Object){
console.log("Object: " + property + ',' + obj[property])
iterate(obj[property])
} else {
console.log("Unknown: " + property +"," + obj[property]);
}
}
}
iterate(app.windows())
Run Code Online (Sandbox Code Playgroud)
我只达到第一级。每个项目下都有一堆 UIElements 和数组。我认为这与 Applescript 返回对象说明符有关,但与实际对象无关?我不确定如何将对象说明符的名称作为函数调用。我尝试了 objproperty、obj.property()、eval("obj." + property + "()"),,但它们都不起作用。我也尝试过 iterate(app.windows())[0]
谢谢您的帮助。
我编写了一个非常基本的苹果脚本,该脚本打开iTerm并转到文件:
tell application "iTerm"\n activate\n do script "cd ~" in tab 1\nend tell\nRun Code Online (Sandbox Code Playgroud)\n\n但是,如果我尝试运行它,我会得到Syntax Error:
Expected end of line, etc. but found \xe2\x80\x9cscript\xe2\x80\x9d.\nRun Code Online (Sandbox Code Playgroud)\n\n知道为什么会这样吗?
\n\n该脚本中是否存在一些不正确的语法?
\n如何通过应用程序的路径将应用程序置于最前面?
即假设/Applications/MyApp.app已经开始;有时我想通过将 MyApp.app 窗口的路径传递给 AppleScript: 来将其置于前面myApplScript.scpt /Applications/MyApp.app。
我尝试过这个脚本,但这对我不起作用:
on run argv
set apppath to (item 1 of argv) as string
tell application "System Events"
set frontmost of every process whose path is apppath to true
end tell
end run
Run Code Online (Sandbox Code Playgroud)
谢谢!
我需要我的 Mac Swift 应用程序使用系统事件(通过 Applescript)来关闭用户添加到列表中的任何应用程序。我在系统偏好设置中看到许多应用程序可以在自动化面板中访问系统事件(例如“Google 的备份和同步”或“Divvy”)。我怎样才能请求许可呢?
如何使用 AppleScript 获取代码编辑器 Visual Studio Pro 窗口的位置和大小?
\n\n这是我尝试过的:
\n\ntell application "Visual Studio Code" to get the bounds of window 1\n--> error "Visual Studio Code got an error: Can\xe2\x80\x99t get bounds of window 1." number -1728 from bounds of window 1\n\ntell application "System Events"\n tell process "Visual Studio Code"\n position of window 1\n size of window 1\n end tell\nend tell\n--> error "System Events got an error: Can\xe2\x80\x99t get process \\"Visual Studio Code\\"." number -1728 from process "Visual Studio Code"\n …Run Code Online (Sandbox Code Playgroud) applescript ×10
macos ×4
android ×1
click ×1
cocoa ×1
entitlements ×1
hard-drive ×1
iterm2 ×1
javascript ×1
osx-services ×1
popup ×1
shell ×1
swift ×1
terminal ×1
xamarin ×1