2016-11-10 2 views
-1

Ich arbeite an einigen AutoIt-Code, um mir mit Office-Streiche und Sachen zu helfen. Die erste Zeichenfolge funktioniert, um die Zeichenfolge "shutdown pc00xxx" in shutdown /r /m pc00xxx /t 0 umzuschreiben, aber ich kann die zweite Zeichenfolge nicht erhalten.Eine Zeichenfolge in AutoIt umschreiben Es funktioniert einmal, aber nicht das zweite Mal

Ich habe den folgenden Code:

func RunProc($string) 
    Local $command = StringLower($string) 
    Local $subs = StringMid($command, 1, 4) 
    Local $computer = StringInStr($command, "pc") 

    if $subs == "shut" Then 

     Run("shutdown /r /m " & StringMid($command, $computer) & " /t 0") 

    ElseIf $subs == "clos" Then 

     Local $prleft = StringTrimLeft($command, 6) 
     Local $extend = StringInStr($command, "on") 
     Local $pright = StringTrimRight($prleft, $extend) 
     Local $strclose = StringMid($string, $prleft, $pright) 
     Run("taskkill.exe /S "& StringMid($command, $computer) & " /im " & $strclose & ".exe") 
    EndIf 

Das Problem ist, dass ich versuche, die Phrase „ZU "ETWAS" ON "pc00xxx" neu zu schreiben sein TaskKill.exe/S pc00xxx/im something.exe Ich versuche den Teilstring zwischen "CLOSE" und "ON pc00xxx" zu bekommen.

So zum Beispiel würde ich SCHLIEßEN AUSBLICK AUF PC00xxx geben und haben den Wert von $ strclose sein:

$strclose = outlook 

Antwort

0

starten:

$string = 'CLOSE OUTLOOK ON PC00xxx' 
$aMatch = StringRegExp($string, '(?i)close (.+) on pc.+', 1) 
If IsArray($aMatch) Then ConsoleWrite('App: ' & $aMatch[0] & @CRLF) 
0

Alternativ verwenden String:

$string = 'CLOSE OUTLOOK ON PC00xxx' 
$stringcomponents=StringSplit(StringStripWS($string,4)," ") 
$strclose=$stringcomponents 
Verwandte Themen