是否可以在此示例中从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
答案 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的命令语法接受以空格分隔的参数!