我试图自动化每周备份我的开发文件的过程.我想自动备份文件,过滤所有文件,删除过去7天内未修改的文件,但保留文件夹结构.例如,我将有许多名为index.js的文件,所以为了知道它们属于哪里,我希望维护文件夹结构,并且如果文件在过去7天内被修改,则该文件保留在其正确的文件夹中.到目前为止,我的过程一直是
这没问题.它复制所有29K文件.下一步是获取文件夹中的所有内容并将其过滤掉.
获取指定的Finder项目(刚刚复制的文件夹)
获取文件夹内容(对找到的每个子文件夹重复)
马上,我有一个问题.获取文件夹内容并检查重复每个子文件夹时发现大约有8,000个文件丢失.我似乎无法弄清楚造成这种情况的原因或如何解决这个问题.
如果我忽略了这一点并继续,我的下一步是过滤掉这些项目.我想删除在过去7天内未修改的项目,因为我想保留文件夹结构,我想确保该项目不是文件夹
设置为查找上次修改日期不是最近7天的文件(这应该抓取最近未修改的所有文件)
过滤器查找器项目
现在我过滤掉这些结果并确保获取所有相同的文件但没有文件夹
将Finder项目移至废纸篓
因此,如果我忽略了Automator最初获取文件夹内容时丢失的初始8,000个文件,并运行它,则无法按预期工作.它确实删除了很多文件,但是遗留了大量过去7天内没有修改过的文件,我无法弄清楚为什么有些文件被删除而有些文件被删除了.我不确定我的流程中是否存在缺陷或我在这里缺少什么.有人能指出我正在努力实现的目标吗?
我不确定这是否可以通过AppleScript和/或Automator进行...但我希望能够:
a)启动一个应用程序(我知道这可以通过AppleScript或Automator轻松完成)
b)启动应用程序后,使用AppleScript或Automator选择特定的菜单项.
例如,我想启动Excel 2008(我的家庭/学生版本没有为Automator预先配置),然后单击"文件"菜单并单击"打开".
关于去哪里/寻找如何选择这样的菜单项的指针(或者如果它甚至可能的话)?
您可以使用Automator的Record功能"排序",但Record非常脆弱.
我宁愿能够使用AppleScript简单地获取包含应用程序的每个菜单项的"数组",然后以编程方式单击我的数组中的第0个菜单项...等.等等
这可能吗?
TIA
我使用的是 Mac OSX 10.6,并且我想在桌面应用程序中实现一个自动化功能。我手动按 Command+R 等待应用程序从物理设备读取一些数据 1 分钟,然后再次按 Command+R 进行另一次读取(此时它询问我是否要保存数据,所以我按tab,tab然后空格键选择保存数据。我总共做了3次,所以我想自动化这3次,这样我就可以离开电脑,它会自动读取3次。
自动化是做到这一点的最佳方法吗?
我已经尝试通过使用“看我做”功能在自动化器中执行此操作。首先是“将无标题窗口置于前面”,然后第二个命令是按 command+R。然后我找到了一小段苹果脚本来等待 1 分钟,然后将第一个操作插入到等待函数中。
但是,当我单击“运行”或“单步”时,光标不会移动并打开正确的窗口(“无标题”),而是移动到自动化器中的“媒体”按钮,然后单击该按钮!但该应用程序绝对被列为正确的应用程序。
感谢任何帮助,但也许自动化是错误的方法?
我正在将一些代码从AMWorkflow迁移到NSUserAutomatorTask,这样我最终可以沙箱化我的应用程序.我希望能够在AMWorkflow中设置工作流中现有变量的值,其中:
AMWorkflow *task = [[AMWorkflow alloc] initWithContentsOfURL:scriptURL error:nil];
[task setValue:@"myValue" forVariableWithName:@"myVar"];
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法使用NSUserAutomatorTask获得类似的功能.我能找到的唯一文档(类引用)表示将变量作为NSDictionary提供.
所以我正在尝试这样的事情:
NSUserAutomatorTask * task = [[NSUserAutomatorTask alloc] initWithURL:workflow error:nil];
task.variables = [NSDictionary dictionaryWithObject:@"myValue" forKey:@"myVar"];
[task executeWithInput:nil completionHandler:^(id result, NSError *error){
if(error)
NSLog(@"Error while executing workflow %@", [error localizedDescription]);
}];
Run Code Online (Sandbox Code Playgroud)
我在另一个答案(使用带有沙盒应用程序的AMWorkflow)中读到,忽略了NSUserAutomatorTask的"executeWithInput:"提供的值.变量是否也可能?
我想自动化,只要进程使用超过50%的CPU,
它就会向我的通知中心发送通知
我正在使用终端通知程序来发送低谷通知,
但是我对创建此自动化的最佳方法有些困惑。
我应该使用Automator.app还是创建自定义AppleScript?如果是,
如何使它始终处于打开状态?
我想要做的是运行一个自动化脚本。发生的情况是它打开带有两个选项卡的终端,每个选项卡和 ssh 到 root@192.168.0.1 和 root@ssh@192.168.0.2;你会怎么做?
我正在尝试在 macOS 10.12 上使用 Automator 来启动 Python 3 脚本。该脚本时,我用下面的命令终端运行它只是罚款:python3 my_script.py。
Automator 具有使用 /bin/bash shell 的“运行 Shell 脚本”功能。shell 将使用以下命令运行脚本:python my_script.py,但这似乎只适用于用 Python 2.7 编写的脚本。
我的脚本以 开头#!/usr/bin/env python3,我认为它会将 shell 引导到正确的 python 解释器,但情况似乎并非如此。
作为一种解决方法,如果我插入 python 解释器的完整路径,我可以让脚本运行:/Library/Frameworks/Python.framework/Versions/3.5/bin/python3,但我认为这是次优的,因为如果/当我更新到 Python 3.6 时,这些命令可能不起作用。
有没有更好的方法来引导 /bin/bash shell 运行 Python3 脚本?
因此,当我尝试使用 Automator 服务打开新的 emacs(带有 spacemacs 的 GNU 版本 25.2)缓冲区时,出现了一些非常奇怪的行为。
在我的终端中,该命令emacsclient -a '' -c按预期工作,通过 emacsclient 打开一个新缓冲区。但是,当我在 Automator 中创建一个仅运行 ( /bin/bash) shell 脚本的服务时:
emacsclient -a '' -c
我收到一条错误消息:
The action “Run Shell Script” encountered an error: “emacsclient: could not get terminal name”
由于怀疑这是由于 Automator 没有使用某些默认PATH变量,我尝试了以下操作:
PATH=/usr/local/bin:$PATH
emacsclient -c
它产生了与以前相同的错误。
接下来我尝试
PATH=/usr/bin:/usr/local/bin export PATH;
emacsclient -c
产生了不同的错误消息:
The action “Run Shell Script” encountered an error: “emacsclient: invalid option -- c
Try `emacsclient --help' for more information” …
我想知道是否可以修改右键单击 Finder 中任何特定内容时弹出的上下文菜单(如下右侧所示)
我可以轻松地将选项添加到右键单击某个项目(左侧)时弹出的上下文菜单...但是有没有办法将选项添加到右侧的菜单中?
例如,我可以在“新文件夹”下方添加自定义选项“新 Majig”吗?
更多信息:
如果它有用,以下是我创建我想要使用的选项的方法:
细节:
我在莫哈韦 10.14.2
我正在使用 Mac Automator 应用程序将新操作添加到文件和文件夹的右键单击快速菜单中。如图所示,我们有许多可用于邮件应用程序和其他应用程序的操作。我想知道是否可以为我的应用程序做类似的事情。我想在库中列出我的应用程序并提供一些类似的选项。能做到吗?
automator ×10
macos ×8
applescript ×3
terminal ×2
automation ×1
contextmenu ×1
cpu-usage ×1
emacs ×1
emacsclient ×1
excel-2008 ×1
filesystems ×1
macos-mojave ×1
objective-c ×1
python ×1
shell ×1
spacemacs ×1