2013-06-07 46 views
5

Những gì tôi đã cố gắng và đã không làm việc:Làm thế nào để cung cấp cho các lệnh trong một cửa sổ CMD bằng cách sử dụng các kịch bản AutoIt (* .au3)?

  1. Tôi mở cmd.exe
  2. Typed "cd \" >> mà không có dấu ngoặc kép
  3. Pressed Nhập
  4. Typed "cd C: \ Program Tệp (x86) \ Jenkins "
  5. Nhấn Nhập
  6. Nhập" jenkins.exe start "
  7. Pressed Nhập

Tôi cũng đã sử dụng lệnh sleep sau mỗi loại, chỉ để chắc chắn rằng nó không được bỏ qua vì thi công nhanh.

;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}") 

tôi có câu trả lời:

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

tôi cần phải loại bỏ "Edit", như cmd không phải là một cửa sổ có thể chỉnh sửa.

Trả lời

5

Bắt đầu chương trình của bạn trực tiếp:

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

Sử dụng &

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}")