从vb.net中的命令行获取参数

时间:2013-07-17 20:26:55

标签: vb.net command-line

是否可以在此示例中从processPath返回参数?
这可能更有意义,对不起。

Dim processName As String

Dim processPath As String

If processName = "cmd" Then
    Dim arguments As String() = Environment.GetCommandLineArgs()
    Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments))
End If

3 个答案:

答案 0 :(得分:4)

一种简单(干净)的方法就是按照以下方式修改Sub Main

Sub Main(args As String())
   ' CMD Arguments are contained in the args variable
   Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", args))
End Sub

答案 1 :(得分:0)

另一个选择

Sub WhatEver()
    Dim strArg() as string
    strArg = Command().Split(" ")
    ' strArg(0) is first argument and so on
    '
    '
End Sub

答案 2 :(得分:0)

您的问题的VB.Net解决方案是在搜索以显示当前执行过程的命令行时使用Command() VB.Net函数。

Sub Main(args As String())
     Dim sCmdLine As String = Environment.CommandLine()
     Console.WriteLine("CommandLine: " & sCmdLine)
     Dim iPos = sCmdLine.IndexOf("""", 2)
     Dim sCmdLineArgs = sCmdLine.Substring(iPos + 1).Trim()
     Console.WriteLine("CommandLine.Arguments: " & sCmdLineArgs)
End Sub

第一个输出将显示带有程序名称的完整命令行。

第二个输出将仅显示命令行而不显示程序名称。

使用args是C / C ++ / C#/ Java技术。

使用CommandLine()函数是纯VB,并且更直观,因为返回命令的行是用户键入的,而无需假设参数的类型没有空格。

示例:

LIST-LINE 1-12, WHERE=(20-24='TYPES'),to-area=4
LIST-LINE 1 - 12, WHERE = ( 20-24 = 'TYPES' ) , to-area = 4

在此命令的语法中,参数用COMMA而不是空格分隔。

在这种情况下,最好不要使用更多与C和Unix链接的args技术,因为C和Unix的命令语法接受以空格分隔的参数!