1

抱歉,对 Applescript 进行编码是新手,因此不胜感激。

我正在尝试创建一个脚本,将剪贴板中的文本粘贴到 telnet 命令的中间。输出需要在同一个窗口中,看起来像这样:

I8,A,001
Q102,024
q448
rN
S4
D15
ZT
JF
O
R71,0
f100
N
B264,65,2,UA0,2,4,56,B,"100000000045"
A203,82,2,1,2,2,N,"xxxxx"
P1

第 13 行引用的 12 位数字是我需要插入的。

这是我到目前为止编写的代码,但它不起作用:

tell application "Terminal"

    do script "telnet xxx.xxx.xx.xx xxxx"
    delay 1
    do script "I8,A,001" in window 1
    do script "Q102,024" in window 1
    do script "q448" in window 1
    do script "rN" in window 1
    do script "S4" in window 1
    do script "D15" in window 1
    do script "ZT" in window 1
    do script "JF" in window 1
    do script "O" in window 1
    do script "R71,0" in window 1
    do script "f100" in window 1
    do script "N" in window 1
    do script "B264,65,2,UA0,2,4,56,B,\""
    tell application "System Events"
        tell application process "Terminal" in window 1
            keystroke "v" using {command down}
        end tell
        keystroke "\""
        keystroke return
        do script "\"A203,82,2,1,2,2,N,\"xxxxx\""
        do script "P1"
        keystroke return
    end tell
end tell

一旦我尝试使用命令 V 粘贴,它就会退出终端窗口并将剪贴板上的内容粘贴到脚本上,它不会让我告诉它留在终端窗口 1 中。

4

2 回答 2

0

您无需使用 command-v 即可将剪贴板内容放入终端窗口。Applescript 可以获取剪贴板,然后您只需在“执行脚本”之前将其添加到字符串的另一部分。像这样的工作......当然,您不需要代码的第一行,因为剪贴板应该已经具有该值。

set the clipboard to "100000000045"

set t1 to "B264,65,2,UA0,2,4,56,B,\""
set t2 to the clipboard
set t to t1 & t2 & "\""
do script t in window 1
于 2012-09-24T00:39:36.850 回答
0

这就是我最终用来让它工作的东西,以防其他人需要它:

tell application "Terminal"

do script "telnet xxx.xxx.xx.xx xxxx"
delay 1
do script "I8,A,001" in window 1
do script "Q102,024" in window 1
do script "q448" in window 1
do script "rN" in window 1
do script "S4" in window 1
do script "D15" in window 1
do script "ZT" in window 1
do script "JF" in window 1
do script "O" in window 1
do script "R71,0" in window 1
do script "f100" in window 1
do script "N" in window 1
set t1 to "B264,65,2,UA0,2,4,56,B,\""
set t2 to the clipboard
set t to t1 & t2 & "\""
do script t in window 1
do script "A203,82,2,1,2,2,N,\"xxxxx\"" in window 1
do script "P1" in window 1

end tell

感谢您的帮助轩辕!

于 2012-09-25T20:43:23.843 回答