2016-04-02 89 views
0

我正在學習Java,我發現它很煩人,你必須使用命令提示符來編譯和運行你的程序......所以我在想:有沒有一種方法可以在Visual Basic中創建一個程序來打開命令提示符並鍵入代碼?是否有可能使VB程序與命令提示符交互?

+0

是的,我想否則會有很少用法。我想你應該編輯你的問題更具體。 – newguy

+0

或..您可以使用Java IDE(集成開發環境)。 VB開發是在Visual Studio IDE中完成的,它可以處理所有'編譯和運行'的東西,而無需使用命令行。 – user2864740

+0

我看到您的第一個編輯添加了您使用的是Java,但您的問題標題仍然指向VB,而您的標記指向VBA *和* VB.Net。我建議你重構你的問題,就像「我怎樣才能自動編譯和運行Java程序?」 – ThunderFrame

回答

-1

總之,是的。您可以只提一個命令提示符。

Sub Foo() 

    Dim cmd_Command As String = "DIR %USERPROFILE%/Desktop/*.* > %USERPROFILE%/Files.log" 

    CreateObject("WScript.Shell").Exec("CMD /C " & cmd_Command) 

End Sub 
+0

我使用的代碼和cmd打開並關閉非常快 – Eddie

+0

此代碼瀰漫不良做法。 1.創建COM對象的實例時,應在使用** FinalReleaseComObject **方法完成工作後將其釋放,並將其設置爲** Nothing **(在C#中爲** nul **)。 2.不需要考慮將COM interop作爲解決方案,因爲.Net Framework類庫公開託管代碼來執行相同操作。 – ElektroStudios

+0

我知道在.net中與COM的交易;這個問題只是問「如果有一種方式......」通用問題=通用答案,這不會被推到完成的代碼。 –

0

可以使用Process類。

Using p As New Process 

    p.StartInfo.FileName = Path.Combine(Environment.SystemDirectory, "CMD.exe") 
    p.StartInfo.Arguments = String.Format("/C ""{0}"" ", "Dir /B /S /A-D ""*""") 
    p.StartInfo.WorkingDirectory = Environment.SystemDirectory 

    p.Start() 
    p.WaitForExit() 

End Using 

但是沒有必要調用CMD,直接調用Java編譯器,就像上面的例子一樣。或者你也可以考慮直接在Java中開發你的程序,並使用Java編譯器的相關接口。

0

使用此代碼可以運行需要在命令提示符下運行的一批命令。

Dim commands As Object() = New Object() {"echo Command One", "echo Command Two", "..."} 
Dim startInfo As ProcessStartInfo = New ProcessStartInfo(Path.Combine(Environment.SystemDirectory, "cmd.exe")) 
startInfo.WindowStyle = ProcessWindowStyle.Normal 
startInfo.Arguments = "/c """ 
For Each obj As Object In commands 
    startInfo.Arguments += obj.ToString + " & " 
Next 
startInfo.Arguments = startInfo.Arguments.Substring(0, startInfo.Arguments.LastIndexOf(" & ")) 
startInfo.Arguments += """" 
Process.Start(startInfo) 

或使用此代碼在命令提示符下更簡潔運行命令。

Shell("cmd /c ""echo Command One & Command Two & ...""") 
相關問題