我试图将一些俄语文本或西里尔文本写入.txt文件.我可以成功地这样做,但是当我打开文件时,所有用来代替文本的都是一堆问号.我认为这是一个编码问题,但在该领域找不到任何帮助.我写了一个小脚本来演示这个问题.
do shell script "> $HOME/Desktop/Russian\\ Text.txt"
set text_path to ((path to home folder) & "Desktop:Russian Text.txt" as string) as alias
set write_text to "??????"
tell application "Finder"
write write_text to text_path
set read_text to text of (read text_path)
end tell
Run Code Online (Sandbox Code Playgroud)
如果有人对于为什么会发生这种情况有任何想法,请告诉我.谢谢.
如何从Firefox(3或4)获取当前URL?到目前为止我找到的所有解决方案要么不起作用(例如那些"class curl"),要么是丑陋的黑客攻击对我来说没有解决办法(发送按键将URL复制到剪贴板).
我只是尝试使用AppleScript计算字符串的MD5:
set hash_string to do shell script "echo -n hi | md5"
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我实际上用"hi"替换了传递给shell的字符串作为测试.AppleScript报告:
tell current application
do shell script "echo -n hi | md5"
--> "5ea3a74c5a5c60abd09da8c5f85fa0a5"
end tell
Run Code Online (Sandbox Code Playgroud)
直接在终端中运行相同的命令会导致:
% echo -n hi | md5
49f68a5c8493ec2c0bf489821c21fc3b
Run Code Online (Sandbox Code Playgroud)
虽然命令是相同的,但计算的散列是不同的.显然,在AppleScript中传递了其他字符,但我似乎无法弄清楚它们是什么.我感谢任何指导.
我尝试一起破解Keyboard Maestro快捷方式,以便为我提供文件的URL(就像“路径查找器”的输出一样)。
到目前为止,我用下面的AppleScript和替代空间与%20:
tell application "Finder"
set sel to the selection as text
set the clipboard to POSIX path of sel
end tell
Run Code Online (Sandbox Code Playgroud)
然后我简单地追加file://localhost/。
问题是涉及特殊字符时,例如,我在桌面上有以下文件夹:
我的输出: file://localhost//Users/patte/Desktop/#%20Old%20files
正确的输出应转换哈希值: file://localhost/Users/patte/Desktop/%23%20Old%20files
使用AppleScript或Shell脚本的解决方案将是很棒的,因为我有能力将其合并。我也尝试过,set the clipboard to URL of the first item of (get the selection)但这对我没有用-也许我做错了。
另一个选择是对特殊字符进行编码的脚本-我也可以使用该脚本,但是我不确定将什么转换成什么-否则我会寻找它。
我有以下函数进行字符串拆分:
on splitText(aString, delimiter)
set retVal to {}
set prevDelimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to {delimiter}
set retVal to every text item of aString
set AppleScript's text item delimiters to prevDelimiter
return retVal
end splitText
Run Code Online (Sandbox Code Playgroud)
单独使用时,它可以正常工作
log splitText("http://google.com | /Users/pistacchio/Desktop/google.jpg","|")
但是当我在我需要的上下文中使用它时,我得到一个-1708错误
tell application "Safari"
activate
repeat with row in linesToPrint
log splitText("http://google.com|/Users/pistacchio/Desktop/google.jpg", "|")
end repeat
end tell
Run Code Online (Sandbox Code Playgroud)
linesToPrint 是一个字符串数组
有帮助吗?
我需要在FireFox中编写具有特定标题的选项卡的关闭脚本.FireFox是否与下面的AppleScript示例等效?
关闭Safari中的标签:
tell application "Safari"
delete (every tab of every window where its name contains "[done]")
end tell
Run Code Online (Sandbox Code Playgroud)
关闭Chrome中的标签:
tell application "Google Chrome"
delete (every tab of every window where its title contains "[done]")
end tell
Run Code Online (Sandbox Code Playgroud) 我写了一个Applecript,它使用了一个有助于执行点击的外部命令行脚本.
现在,如果我想发布我的脚本,那么最终用户的方法应该是什么?我的意思是,我应该对他们说:"首先,你必须下载这个CLI工具,然后放入这个文件夹......然后下载并运行我的脚本!"
这是一个新手问题,但是:这是唯一的方法吗?或者我可以在某种程度上包含我的脚本/包中的CLI代码?如果有,怎么样?
我正在使用NetShade作为代理服务,并认为我可以尝试自动化不同代理之间的切换,这是我的第一个AppleScript脚本的良好开端.
NetShade-app没有AppleScript支持,所以我必须使用UI脚本.经过几次尝试(以及这里的一些帖子)我设法有一个脚本,通过菜单栏项切换代理(这里是它的图片,因为我不能因为声誉限制而内联发布).
不幸的是我的代码非常慢(≈6sec),这使得它像脚本一样不切实际.第一个菜单立即打开,但子菜单和代理服务器的选择需要几秒钟.
我正在使用以下代码:
set theProxy to "Netshade US 4"
tell application "System Events" to tell process "NetShade"
tell menu bar item 1 of menu bar 2
click
tell menu item "NetShade Proxy" of menu 1
click
tell menu item theProxy of menu 1
click
end tell
end tell
end tell
end tell
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加ignoring application responses,像在不同的线程(链接)中建议,但这没有帮助.
最后我的问题是:有没有办法加快这个过程?也许甚至可以在后台完成所有这些操作而不显示菜单项?
PS:我正在运行OS X 10.9.1
我希望能够在Finder中右键单击文件或文件夹,然后选择服务>打开终端以在该路径上打开终端窗口.
在automator中,我有一个运行AppleScript的服务
tell application "Terminal"
do script "cd $filePath"
activate
end tell
Run Code Online (Sandbox Code Playgroud)
我不知道如何传递文件路径!
额外奖励:我如何确保这适用于文件和文件夹?如果是一个文件,可能会说该文件不是目录.
额外奖励:我自己哪里可以找到这个答案?文档似乎是密集的方式.
谢谢
切特
我正在尝试返回当前iTunes Track的信息,该信息正在我的计算机上播放.
我可以获得这样的单个信息:
tell application "iTunes"
get name of current track
end tell
Run Code Online (Sandbox Code Playgroud)
这返回Thunderstruck例如.
但是有可能我可以获得有关当前曲目的更多信息,因此返回如下内容:
"AC/DC, Thunderstruck, Iron Man 2"
Run Code Online (Sandbox Code Playgroud)
这可能吗?或者我是否必须创建多个脚本?
谢谢