web-dev-qa-db-ja.com

AutoIt(* .au3)スクリプトを使用してCMDウィンドウでコマンドを実行するにはどうすればよいですか?

私が試したがうまくいかなかったこと:

  1. 私は開きました cmd.exe
  2. 「cd \」と入力しました>>引用符なし
  3. 押された Enter
  4. 「cdC:\ Program Files(x86)\ Jenkins」と入力しました
  5. 押された Enter
  6. 「jenkins.exestart」と入力しました
  7. 押された Enter

また、すべてのタイプの後にsleepコマンドを使用しました。これは、実行速度が速いためにスキップされないようにするためです。

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

私は答えを得ました:

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

Cmdは編集可能なウィンドウではないため、「編集」を削除する必要がありました。

7
paul

プログラムを直接開始します。

RunWait(@ComSpec & " /c jenkins.exe start", "C:\Program Files (x86)\Jenkins")
6
Obi

使用する &

Exp:

$CMD = 'cd %tmp% & md 1 & md 2 & cd %tmp%/1 & md 3 4 & md "5 6" &'
RunWait(@ComSpec & " /c " & $CMD )
1
;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}")
0
Gloria Rampur
Run("C:\WINDOWS\system32\cmd.exe")
WinWaitActive("C:\WINDOWS\system32\cmd.exe")
send('cd C:\Program Files (x86)\' & "{ENTER}")
0
mrt