使用command$()可以得到参数值。下面是MSDN中的一段完整示例:
创新互联建站是一家专注于成都网站建设、网站设计与策划设计,秦淮网站建设哪家好?创新互联建站做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:秦淮等地区。秦淮做网站价格咨询:18982081108
Command 函数示例
本示例在某个函数中用 Command 函数获得命令行参数,并将命令行参数以 Variant 类型之数组返回。
Function GetCommandLine(Optional MaxArgs)
'声明变量。
Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
'检查是否提供了 MaxArgs 参数。
If IsMissing(MaxArgs) Then MaxArgs = 10
' 使数组的大小合适。
ReDim ArgArray(MaxArgs)
NumArgs = 0: InArg = False
'取得命令行参数。
CmdLine = Command()
CmdLnLen = Len(CmdLine)
'以一次一个字符的方式取出命令行参数。
For I = 1 To CmdLnLen
C = Mid(CmdLine, I, 1)
'检测是否为 space 或 tab。
If (C " " And C vbTab) Then
'若既不是 space 键,也不是 tab 键,
'则检测是否为参数内含之字符。
If Not InArg Then
'新的参数。
'检测参数是否过多。
If NumArgs = MaxArgs Then Exit For
NumArgs = NumArgs + 1
InArg = True
End If
'将字符连接到当前参数中。
ArgArray(NumArgs) = ArgArray(NumArgs) C
Else
'找到 space 或 tab。
'将 InArg 标志设置成 False。
InArg = False
End If
Next I
'调整数组大小使其刚好符合参数个数。
ReDim Preserve ArgArray(NumArgs)
'将数组返回。
GetCommandLine = ArgArray()
End Function
在VB.NET中,主函数Sub Main(ByVal Args() As String) 的参数args就是传递过来的CMD参数的字符串
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim b As Boolean = My.Computer.Network.Ping("192.168.1.1", 1000) '返回ping结果,true表示通,false表示不通,1000表示1000毫秒内返回结果
My.Computer.FileSystem.WriteAllText("c:\1.txt", b.ToString vbCrLf, True) '写入到c盘的1.txt文件中并自动加换行回车符
End Sub
VB.NET 里面会有一个main方法表示函数的入口
main方法的参数就是命令行传给它的
shutdown.exe能直接调用是因为你的环境变量有C盘的windows目录
你只要在你程序的输出目录(一般为bin)里面打开命令行输入程序名称.exe就可以直接执行你的窗体
如果你要调试输入命令的效果,你打开你项目的属性,找到调试里面的命令行参数,在里面输入测试参数就能在你main函数里面看到结果了
那如果你想打开任何命令行都可以执行你的窗体程序,那你把你程序的安装目录设置为环境变量,这样就可以直接执行这个命令了
Sub Main()
Dim myProcess As New Process
Dim startInfo As New ProcessStartInfo("cmd.exe")
startInfo.Arguments = "/c netsh wlan show networks"
'获取无线网卡可以搜索到的无线网络信息
startInfo.UseShellExecute = False
startInfo.RedirectStandardOutput = True
startInfo.CreateNoWindow = True
myProcess.StartInfo = startInfo
myProcess.Start()
myProcess.WaitForExit()
Dim myStreamReader As IO.StreamReader = myProcess.StandardOutput
Dim myStr As String = myStreamReader.ReadToEnd
End Sub
可以参考这个例子