4

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
4

3 回答 3

7

实现此目的的一种简单(且干净)的方法是将您的修改Sub Main如下,

Sub Main(args As String())
   ' CMD Arguments are contained in the args variable
   Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", args))
End Sub
于 2013-07-17T20:30:31.547 回答
1

另外的选择

Sub WhatEver()
    Dim strArg() as string
    strArg = Command().Split(" ")
    ' strArg(0) is first argument and so on
    '
    '
End Sub
于 2014-04-15T15:00:03.637 回答
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

在此命令的语法中,参数由逗号而不是空格分隔。

在这种情况下,最好不要使用args与 C 和 Unix 更相关的技术,其中命令语法接受由空格分隔的参数!

于 2020-04-01T15:33:20.467 回答