尝试将剪贴板值与变量值进行比较以删除某些文本,并将余数复制到teraterm窗口

时间:2015-09-03 05:36:52

标签: autohotkey

注意下面的if语句。我正在将终端输出复制到剪贴板。它包含RP/0/RSP0/CPU0:cobn9-hub#。我想从剪贴板中删除RP/0/RSP0/CPU0:,但是当我尝试向该变量var1添加一个额外的字符串时,它确实有效。

var1  := "RP/0/RSP0/CPU0:,mnet-prd-hub" 

没有,mnet-prd-hub它会删除不需要的文字,但如果我向var1添加其他内容,则会停止工作。

我还想删除mnet-prd-hub:
来自mnet-prd-hub:/home/data/configs/current$/home/data/configs/current$

如果var包含%clipboard",我已经尝试过了 我试过剪贴板包含%var1%
我没有运气就试过IfInstring 所以我要求某人监护。

我已经尝试了好几个小时没有运气,我们将非常感谢您的帮助。

SetTitleMatchMode, 2   
#IfWinActive,  ahk_class VTWin32
::ttwa::
    var1 = 
    var1 :=
    clipboard = ; empty clipboard
    sleep 200
    send !e {enter}
    send s
    send {enter 100}
    sleep 100
    Send {click} 
    sleep 100
    send {click} 
    sleep 100
    send {click} 
    sleep 10
    MsgBox 1st %clipboard%   %var1%
    ;var1 represents a Cisco 9k this script removes var1 puts the proper name in the Title Window
    var1  := "RP/0/RSP0/CPU0:,mnet-prd-hub"
    MsgBox 2nd %clipboard%   %var1%
    ;if  var1 in %clipboard%
    IfInString, var1, %clipboard%
    {
        MsgBox 3rd  %var1%      %clipboard%
        StringReplace, clipboard, clipboard, %var1%,, All
        StringReplace, clipboard, clipboard, #,, all
        MsgBox 4rd  %var1%      %clipboard%
        var1 = 
        var1 :=
        MsgBox 5th   %var1%      %clipboard%
    }
    else 
    {
        MsgBox 6th  %var1%      %clipboard%
        StringReplace, clipboard, clipboard, #, , all
        MsgBox 6th  %var1%      %clipboard%
    }
    sleep 200
    send !s
    sleep 200
    Send w
    send %clipboard% {enter}
    sleep 200
    send !e s {enter}
#IfWinActive
return

2 个答案:

答案 0 :(得分:0)

我不确定您要查找的内容,但由于您说您在变量中添加字符串时遇到问题,请尝试使用此代码,它将向您展示如何从变量中删除和添加文本:

var1  := "RP/0/RSP0/CPU0:,mnet-prd-hub" 
MsgBox, %var1% `n`nClick OK to remove RP/0/RSP0/CPU0: from that string!
var1 := RemoveFromString(var1, "RP/0/RSP0/CPU0:")
MsgBox, %var1% `n`nClick OK to add mnet-prd-hub:/home/data/configs/current$/home/data/configs/current$ to that string!
var1 := AddToString(var1, "mnet-prd-hub:/home/data/configs/current$/home/data/configs/current$")
MsgBox, %var1% `n`nClick OK to remove mnet-prd-hub: from that string!
var1 := RemoveFromString(var1, "mnet-prd-hub:")
MsgBox, %var1%

RemoveFromString(string,stringToRemove) {
    Return StrReplace(string, stringToRemove, "")
}
AddToString(string,stringToAdd) {
    Return string stringToAdd
}

修改 所以你想看看是否要在剪贴板中找到var1的内容? 可以这样做:

If InStr(Clipboard,var1) {
    MsgBox, the contents of var1 were found in the clipboard.
}

编辑2: 喜欢这个?

If InStr(Clipboard,var1) {
    Clipboard := RemoveFromString(Clipboard,var1)
}
RemoveFromString(string,stringToRemove) {
    Return StrReplace(string, stringToRemove, "")
}

答案 1 :(得分:0)

这完美的天才帮助了我。

Groupadd, TerminalWindows, ahk_class VTWin32
Groupadd, TerminalWindows, ahk_class PuTTY



SetTitleMatchMode, 2   
#If WinActive("ahk_group TerminalWindows")
::ttwa::
    uNames := "mnet-prd-hub:,RP/0/RSP0/CPU0:,RP/0/RSP1/CPU0:"
    Clipboard= ; empty clipboard
    sleep 200
    send !e {enter}
    send s
    send {enter 100}
    sleep 100
    Send {click} 
    sleep 100
    send {click} 
    sleep 100
    send {click} 
    sleep 10

    Loop, Parse, uNames, `,
        clipboard := RegexReplace(clipboard, a_loopfield)

    ; msgbox % clipboard

    if (WinActive("ahk_class VTWin32"))
    {
        sleep 200
        send !s
        sleep 200
        Send w
        send %clipboard% {enter}
        sleep 200
        send !e s {enter}

    } else if (WinActive("ahk_class PuTTY"))
    {
        ; steps for putty
    }
#IfWinActive
return