2012-07-23 51 views
0

我已經完成了一個VB.Net程序,它從兩個文本文件(一個文本文件將包含服務器名稱列表,其他文件將包含值列表)讀取數據,以及使用一個文本文件列表中的服務器名稱命中數據庫,並將其他文本文件中的值用作過濾器。在命令提示符中運行VB.Net代碼

該代碼在DotNet環境中工作正常。

的要求是,我需要使它在命令prompt.Input運行應該是以下

MyProgram.exe -s d:\ ServerName.txt -v d:\ Valuelist.txt

MyProgram是VB.Net中程序的名稱,另外兩個是文本文件。

幫助我伸手這個

感謝, 拉姆亞

+0

是該程序的控制檯應用程序?當您嘗試從命令提示符運行它時會發生什麼? – Teppic 2012-07-23 06:38:33

+0

是我的程序是一個控制檯應用程序,當我嘗試通過給MyProgram.exe在命令提示符下運行,它會打開控制檯窗口,但我需要在命令提示符下 – user1545079 2012-07-23 07:16:19

+0

OK的一切工作,你目前的參數傳遞到您的控制檯應用程序,還是他們在應用程序中硬編碼?如果他們硬編碼,遵循邁克爾·羅德里格斯和手-E英尺的建議在下面他們的答案將參數傳遞到命令行應用程序,而不是在應用程序中硬編碼這些值。 – Teppic 2012-07-23 07:32:44

回答

1

要在命令提示符下,你描述的,你需要創建一個Console Application方式運行。在創建新項目時選擇此項目類型意味着您的程序將不具有界面,而是在控制檯上運行。

命令行參數將被傳遞到主事件。

您也可以使用正常的Windows應用程序,並檢查System.Environment.CommandLine以查看用於啓動應用程序的命令行。

要測試您的應用程序,請在Project - > Properties - > Debug - > Command line arguments中指定要運行的命令行屬性。

1

在項目的屬性,下應用,設置:
應用程序類型 =控制檯應用程序
啓動對象 =子主

接着添加一個模塊到項目(或使用現有的一個),並創建一個類似的方法:

Sub Main(args() As String) 
    If args.Length >= 2 Then 
     ProcessFiles(args(0), args(1)) 
    Else 
     AskForFiles() 
    End If 
End Sub 

此方法將運行時該應用程序被執行。 args參數將包含所有命令行參數。


或者,你可以使用Windows窗體應用程序,在這種情況下,當它啓動時,需要檢查命令行參數。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Form1.Load 
    Dim args As String() = Environment.GetCommandLineArgs() 
    If args.Length >= 2 Then 
     ProcessFiles(args(0), args(1)) 
    Else 
     AskForFiles() 
    End If 
End Sub 
+0

當我們執行VB.Net代碼時,命令提示符打開並且它可以工作。但我需要從命令提示符執行代碼。我必須只打開命令提示符,並給兩個arguements的vb.net可執行文件和相應的程序應該執行 – user1545079 2012-07-23 10:32:52

+1

好了,有什麼問題了嗎?如果你去到命令提示符,切換到該程序所在的文件夾,然後鍵入'MyProgram.exe d:\ ServerName.txt d:\ Valuelist.txt'它應該工作。 – 2012-07-24 00:57:36

0

從您的意見看來,您實際上只是從開始菜單>運行(或其變體取決於您使用的Windows版本)運行命令。

這意味着將爲您的命令創建一個控制檯窗口,然後關閉它。

至少需要包含參數處理,如其他答案中所述。

爲了能夠繼續查看程序的結果,請先自己打開命令提示符,或者在程序結束時添加Console.ReadLine。然後它會等待返回被按下,或者您可以關閉窗口。

相關問題