terminal - 热门修复“无法将 {button 返回:“Connect”,文本返回:“test”} 转换为 Unicode 文本类型。”
问题描述
我正在尝试创建一个小型自动化应用程序,以通过可能隐藏网络的ssh设备上的终端连接到无线网络。
一系列选项导致选择简单地输入SSID并连接设备。
set userSSID to display dialog "Type the SSID for the network you require below" buttons ["Connect", "Cancel"] default answer "" default button 1
if button returned of result = "Cancel" then
error number -128
else
if button returned of result = "Connect" then
tell application "Terminal"
set currentTab to do script ("networksetup -setairportpower en1 on")
delay 2
do script ("networksetup -setairportnetwork en1 '" & userSSID & "'") in currentTab
end tell
end if
我希望它按照输入的方式连接到 SSID,在本例中为“测试”,但是我收到了错误消息:
“运行 AppleScript”操作遇到错误:“无法将 {button returned:"Connect", text returned:"test"} 转换为 Unicode 文本类型。”</p>
解决方案
display dialog
返回一条记录{button returned, text returned}
作为错误状态。
要使用text returned
你必须写的值
do script ("networksetup -setairportnetwork en1 '" & text returned of userSSID & "'") in currentTab
但是,您的代码中有一些冗余,例如按下Cancel
按钮会立即中止脚本。
代码可以简化为
set {text returned:userSSID} to display dialog "Type the SSID for the network you require below" buttons ["Connect", "Cancel"] default answer "" default button 1
tell application "Terminal"
set currentTab to do script ("networksetup -setairportpower en1 on")
delay 2
do script ("networksetup -setairportnetwork en1 '" & userSSID & "'") in currentTab
end tell
或者甚至没有Terminal.app
set {text returned:userSSID} to display dialog "Type the SSID for the network you require below" buttons ["Connect", "Cancel"] default answer "" default button 1
do shell script "networksetup -setairportpower en1 on"
delay 2
do shell script "networksetup -setairportnetwork en1 " & quoted form of userSSID
推荐阅读
- android - 如何将参数从匕首传递到kotlin中的适配器
- jenkins - Jenkins 核心 API 文档:如何导航以查找详细的属性和方法?
- blueprism - 蓝色 pris 错误消息:内部:无法将输出存储在成功中,因为它在另一个页面上,并且已被隐藏
- c# - 将 C# 字符串转换为 win-1251
- algorithm - 查找 NAPTR DNS 查询的负载分布的算法
- siddhi - 在“DistributionStream”的接收器“tcp”处丢弃事件,因为它仍在尝试重新连接
- python - 使用 tweepy 调用 python 类时的未绑定方法
- extjs - 使用 JSON 值填充组合框
- java - 如何批量插入mysql LOAD DATA?
- ssis - 在 SSIS 中进行快速加载时,在目标表中保留默认值