2015-09-23 186 views
0

我试图进行下一个批处理文件:传递VB参数批处理文件

route ADD 131.1.0.0 MASK 255.255.0.0 191.168.0.136 
pause 

不过,我想使IP通过一个Visual Basic应用地址变量。

现在我想未来:

Public Class Form1 
    Dim a 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     a = (TextBox1.Text) 

    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim objWshShell 
     objWshShell = CreateObject("Wscript.Shell") 
     objWshShell.run(Chr(34) & "C:\NAT\RouteHCM.bat" & Chr(34) & a, 1) 

    End Sub 
End Class 

我怎么可以添加更多的变量,是有可能使这个批处理脚本(Visual Basic中直接添加路由)?

回答

0

这样:

  • 假设你有形式TextBox1中,TextBox2中,TextBox3

  • 用以下替换整个类:

Imports System.Diagnostics 

Public Class Form1 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     With New Process() 
      .StartInfo.UseShellExecute = False 
      .StartInfo.FileName = "route" 
      .StartInfo.Arguments = String.Format("-p add {0} mask {1} {2}", 
               TextBox1.Text, 
               TextBox2.Text, 
               TextBox3.Text) 
      .StartInfo.RedirectStandardOutput = True 
      .StartInfo.StandardOutputEncoding = Text.Encoding.ASCII 
      .Start() 
     End With 
    End Sub 
End Class 

如果您检查帮助String.Format(),ProcessStartInfo,你会明白的。 (我也从那里学习东西。)

+0

我怎么能做到这一点的VB脚本?没有使用这个批处理文件...添加路由 – Joep

+0

@Joep - 即使我检查[MSDN Q&A](https://social.msdn.microsoft.com/Forums/en-US/de500ec3-c0fc-411a-a21d-6917bede9b80/route-add-with-c?forum = netfxnetcom),他们以上述方式执行 - 调用shell命令。你的意思是[tag:vb.net]还是[tag:vbscript]?他们是两种不同的语言和技术。 – miroxlav

+0

对不起,我的意思是vb.net。那么,我现在必须添加或删除哪些代码?这种东西的新种类.. – Joep

相关问题