Java öğreniyorum ve programlarınızı derlemek ve çalıştırmak için komut istemi kullanmak zorunda olduğunuzu can sıkıcı buluyorum ... Bu yüzden düşündüm: Visual Basic'te bir program hazırlamanın bir yolu var. komut istemi ve kodu yazın?Bir VB programı bir komut istemi ile etkileşimde bulunmak mümkün mü?
cevap
Özetle, evet. Sadece bir komut istemi gönderebilirsiniz.
Sub Foo()
Dim cmd_Command As String = "DIR %USERPROFILE%/Desktop/*.* > %USERPROFILE%/Files.log"
CreateObject("WScript.Shell").Exec("CMD /C " & cmd_Command)
End Sub
Ben bu kodu kullandım ve cmd açılır ve gerçekten hızlı kapanır – Eddie
Bu kod, kötü uygulamaları farklılaştırır. 1. Bir COM nesnesinin bir örneğini oluştururken, işin bitmesinden sonra ** FinalReleaseComObject ** yöntemi ile bırakmanız ve ** Nothing ** (** nul ** C#) olarak ayarlamanız gerekir. 2. COM Framework'ü bir çözüm olarak düşünmeye gerek yoktur. Çünkü .Net Framework Sınıf Kitaplığı, yönetilen kodun aynısını yapmasını sağlar. – ElektroStudios
. COM ile yapılan işlemlerin farkındayım. Soru sordu "eğer bir yol varsa ...." Genel soru = genel cevap, bu bitmiş kod olarak itilmiş değildi. –
Sen Process sınıfını kullanabilirsiniz.
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
Ama CMD çağrı sadece yukarıdaki örnekte olduğu gibi aynı şekilde, directlly Java derleyici aramaya gerek yoktur. Ya da programınızı doğrudan Java'da geliştirmeyi düşünebilirsiniz ve Java derleyicinin arabirimini kullanın.
Komut isteminde çalıştırmanız gereken komut kümesini çalıştırmak için bu kodu kullanın.
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)
Ya da sadece komut istemine daha kısaca komutları çalıştırmak için bu kodu kullanın.
Shell("cmd /c ""echo Command One & Command Two & ...""")
Evet, sanırım aksi halde çok daha az kullanım olur. Sorunuzu düzenlemenin daha spesifik olmasını düşünürüm. – newguy
Ya da bir Java IDE (Entegre Geliştirme Ortamı) kullanabilirsiniz. VB geliştirme, komut satırını kullanmaya gerek kalmadan tüm 'derleme ve çalıştırma' işlerini yürüten Visual Studio IDE'de yapılır. – user2864740
İlk düzenlemenizin Java'yı kullandığınızı görüyorum, ancak soru başlığınız yine de VB'ye ait ve etiketleriniz VBA * ve * VB.Net. Sorunuzu "Java Programını nasıl otomatik olarak derleyebilir ve çalıştırabilirim?" Gibi bir şey olmasını öneriyoruz. – ThunderFrame