2014-01-28 106 views
1

因此,有人編寫(我沒有訪問權限)的程序是用C#編寫的,其中當我打開它時,它會顯示一條命令提示,問幾個問題,然後返回一個輸出。使用批處理文件/命令行將參數傳遞給可執行文件

我想做的事情就是寫一個批處理文件來自動輸入所有的參數,但到目前爲止我還沒有真正起作用。我在命令提示符下嘗試了「program.exe arg1 arg2 ..」並閱讀了關於windows命令(我檢查了ss64),但似乎沒有任何工作。

所以總結一下發生的事情是:

1)我打開命令提示符程序(.exe文件)(或點擊它),它要求我輸入一個值或文件名 http://i.stack.imgur.com/bZsSi.png

2)我按回車繼續下一個問題,命令讓我回答另一個問題(除非我完成了最後一個問題,在這種情況下,程序完成執行,然後關閉)。 http://i.stack.imgur.com/nqJ5M.png

現在,我將如何去做一個批處理文件,進入SWAIN.dat,n,1000等...自動到這個程序?同樣,我無法訪問原始程序。我只知道它是用C#編寫的。

非常感謝。

+0

這裏的「Program.exe文件ARG1 ARG2一個例子。 。「方法http://i.stack.imgur.com/RsHWV.png – GeoBaez

+0

該程序顯然不需要參數,只是忽略瞭解析它的任何內容。你可以寫一個VB腳本並使用發送鍵 - [看看這個](http://stackoverflow.com/questions/284201/schedule-a-vbs-file-to-run-in-windows)。 – unclemeat

+0

我已經爲你發佈了一個例子。 – unclemeat

回答

2

您可以創建一個VB腳本 -

set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.Run "cmd" 
WScript.Sleep 100 
WshShell.AppActivate "C:\Windows\system32\cmd.exe" 
WScript.Sleep 100 
WshShell.SendKeys "program.exe{ENTER}" 
WScript.Sleep 100 
WshShell.SendKeys "SWAIN.dat{ENTER}" 
WScript.Sleep 100 
WshShell.SendKeys "1000{ENTER}" 

等等

2

你可以試試這個:

(
echo SWAIN.dat 
echo n 
echo 1000 
echo etc... 
) | program.exe 
+0

由於與64位Windows不兼容,程序無法啓動或運行(這很奇怪,因爲它在我手動輸入所有內容時運行良好)。我會在另一臺機器上試用它,看看它是如何發展的。 – GeoBaez

相關問題