2013-06-07 41 views
5

Co próbowałem i nie działa:Jak wydawać polecenia w oknie CMD za pomocą skryptów AutoIt (* .au3)?

  1. Otworzyłem cmd.exe
  2. Wpisane "cd \" >> bez cudzysłowów
  3. Tłoczone Wprowadź
  4. Wpisane „cd C: \ Program Files (x86) \ Jenkins”
  5. Tłoczone Wprowadź
  6. wpisane "jenkins.exe start"
  7. Tłoczone Wprowadź

Mam również używane komendy sleep po każdego typu, tak aby upewnić się, że nie jest pomijanie powodu szybkiej realizacji.

;Run application 
Run("cmd.exe") 

;Wait for CMD to be opened 
WinWaitActive("Administrator: C:\Windows\system32\cmd.exe", "", 15) 

;Write some commands on cmd 
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "cd\") 
Sleep(10000) 
Send("{Enter}") 
Sleep(10000) 
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "cd C:\Program Files (x86)\Jenkins") 
Sleep(10000) 
Send("{Enter}") 
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "jenkins.exe start") 
Sleep(10000) 
Send("{Enter}") 

Dostałem odpowiedź:

ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "", "cd C:\Program Files (x86)\Jenkins") 

co potrzebne, aby usunąć "Edit", jak cmd nie jest edytowalny okno.

Odpowiedz

5

Uruchom program bezpośrednio:

RunWait(@ComSpec & " /c jenkins.exe start", "C:\Program Files (x86)\Jenkins") 
0
Run("C:\WINDOWS\system32\cmd.exe") 
WinWaitActive("C:\WINDOWS\system32\cmd.exe") 
send('cd C:\Program Files (x86)\' & "{ENTER}") 
1

Użyj &

Exp:

$CMD = 'cd %tmp% & md 1 & md 2 & cd %tmp%/1 & md 3 4 & md "5 6" &' 
RunWait(@ComSpec & " /c " & $CMD) 
0
;Run application 
Run("cmd.exe") 

;Wait for CMD to be opened 
WinWaitActive("Administrator: C:\Windows\system32\cmd.exe", "", 1) 
Send('C:' & "{ENTER}") 
Send('cd Program Files (x86)' & "{ENTER}") 
Send('cd TestAPP' & "{ENTER}") 
Send('start testApp.exe' & "{ENTER}")