我想在Apple脚本中创建一个新的Folder命令
为什么这个脚本有效?
tell application "Finder"
activate
end tell
tell application "System Events"
tell process "Finder"
tell menu bar 1
tell menu bar item "File"
tell menu "File"
click menu item "New folder"
end tell
end tell
end tell
end tell
end tell
Run Code Online (Sandbox Code Playgroud) 我想用单引号替换以下示例中的sed命令中的双引号.
set new_string to do shell script "echo " & quoted form of list_string & " | sed -e 's/$/\"/' -e 's/^/\"/' -e 's/^/+/'"
Run Code Online (Sandbox Code Playgroud)
但是,如果我用单引号替换双引号我得到一个错误,有没有办法逃脱单引号?
我不是一个忍者,所以任何关于如何解决这个问题的提示都非常感谢.
我试图通过AppleScript检查应用程序是否打开
这是以下代码:
on run {input, parameters}
quit application "KeyboardViewer"
return input
end run
Run Code Online (Sandbox Code Playgroud)
但是我希望它首先检查KeyboardViewer是否打开,如果是,则退出应用程序,如果没有,则启动它.在某种程度上,代码应该切换应用程序.
我不熟悉AppleScript的编码(这里的第一个计时器)所以我很感激一些见解.
谢谢
编辑
我一直在尝试使用它,这似乎有效,是否有更有效的方法?我想看看你的意见
on run {input, parameters}
if application "KeyboardViewer" is running then
quit application "KeyboardViewer"
else
activate application "KeyboardViewer"
end if
return input
end run
Run Code Online (Sandbox Code Playgroud)
使用此脚本时有一个小的(少于1秒)延迟.有没有办法让它更快?
我在终端中有命令要将其放入AppleScript文件中.这可能吗?
更多信息:
我正在使用以下代码来显示隐藏文件.我在终端的命令行中键入它以使其工作:
defaults write com.apple.finder AppleShowAllFiles -bool true
killAll Finder
Run Code Online (Sandbox Code Playgroud)
我想将其转换为AppleScript文件,因此我可以双击它,它将像Windows中的批处理文件一样运行.
更新:
如果有比AppleScript文件更好的选项,我需要知道除了双击它之外如何从命令行运行它.
我有以下情况:
我的Mac OS捆绑了应用程序,该应用程序使用了一些第三方动态库,而这些库依赖于某些环境变量,因此命名它ENV_VAR。我只想ENV_VAR为我的应用程序设置一些值,因为如果为整个系统设置它,可能会破坏其他一些应用程序。而且它应该对用户透明,即他只需双击Application文件夹中的应用程序即可运行我的应用程序。我该如何实现?
注意:动态库会在主要功能启动之前加载,因此在主要功能中设置此变量无济于事。
我正在尝试设置脚本以将模板文件复制到新创建的文件夹.该文件是从template_name创建的变量.不幸的是我是一个posix新手,似乎无法获得将模板文件复制到新文件夹的脚本.
返回的错误是"无法设置"/应用程序"Finder"的"Volumes/Media/NewFolder"到应用程序"Finder"的文件"Volumes/Media/+ A3Temp.ptx"
set temp_name to client_code & " " & brand_name & " " & job_name & " " & job_number & " " & creation_date
set media_folder to "/Volumes/Media/"
set new_folder to media_folder & temp_name
set template_name to ("+" & suite & "Temp.ptx") as string
set session_name to (client_code & " " & brand_name & " " & job_name & " " & creation_date & ".ptx")
set template to (media_folder & template_name)
tell application "Finder"
duplicate POSIX file …Run Code Online (Sandbox Code Playgroud) 我知道它是一个愚蠢的问题但不知何故我输入的命令不起作用
set deleteFile to srcTemp & "Archive.zip"
--deleteFile path is something like this /Users/home/Desktop/Archive.zip
tell application "Finder"
move POSIX file "" & deleteFile & "" to trash
--move file "\"" & destNoQuote & "Archive.zip\"" to trash
empty the trash
end tell
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,说无法找到POSIX文件.
试图找到一种方法让我的脚本检查当前是否在计算机上播放任何声音/音频.如果是这样,有没有办法找到哪个应用播放声音?
我正在尝试编写几个共享常用功能的AppleScript脚本.理想情况下,它们将包含一个单独的文件,用于定义这些函数.
由于这将在存储库中而不是锁定到特定的计算机,因此我不能依赖脚本库目录来执行此操作.我正在尝试从相对路径加载脚本.
但它似乎都没有用.起初我认为这个问题与目录名中的空格有关,但是在我从一个不包含空格的目录中包含的测试之后,很明显osascript是找到该文件并且只是拒绝打开它.
错误"脚本似乎不属于AppleScript." 编号-1752来自"/path/to/common.applescript"
这甚至意味着什么,我该如何解决?
StandardAdditions有path to命令,我们可以用它来获取已知的位置.
例如,path to home folder返回一个文件引用user folder,如果我们想要posix path,我们可以做POSIX path of ((path to home folder) as text).
在Terminal.app我们可以使用波浪号字符(~)来表示home folder.
我们怎样才能做到这一点tilde expanding的AppleScript?