2016-04-02 5 views
0

Я изучаю Java, и я нахожу это раздражающим, что вам нужно использовать командную строку для компиляции и запуска ваших программ ... Поэтому я подумал: есть ли способ сделать программы на Visual Basic, которые откроются командной строки и введите код?Возможно ли, чтобы программа VB взаимодействовала с командной строкой?

+0

Да, я предполагаю, что в противном случае было бы очень мало использования. Я думаю, вы должны отредактировать свой вопрос более конкретно. – newguy

+0

Или вы могли бы использовать Java IDE (Integrated Development Environment). Разработка 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 ** (** nul ** на C#). 2. Нет необходимости рассматривать COM-взаимодействие как решение, потому что библиотека классов .Net Framework предоставляет управляемому коду то же самое. – ElektroStudios

+0

Я знаю о сделках с COM в .net; Вопрос просто спросил «если был способ ...». Общий вопрос = общий ответ, это не толкали как готовый код. –

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 directlly, таким же образом, как в примере выше. Кроме того, вы можете рассмотреть возможность разработки вашей программы напрямую в 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 & ...""")