应用程序中的vb.net参数/命令行

时间:2015-10-05 08:28:33

标签: vb.net

我想创建自己的命令行。(作为Windows应用程序,不提示) 示例:textbox1中的-f {filepath} -d {filename}

-f C://Windows/Users/Myname/Documents -d junk.exe

所以它必须过滤文件路径和文件名 所以它变成了这个my.computer.filesystem.delete("C://Windows/Users/Myname/Documents", "junk.exe")

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取命令行参数:

Dim arguments As String() = Environment.GetCommandLineArgs()

我在MSDN上发现了这个。

答案 1 :(得分:0)

您可以使用此功能获取所需参数的值(参数名称必须包含' - '符号。)

Public Function GetParameter(input As String, param As String) As String
    Dim cmdargs As New List(Of String)
    For Each item As Match In Regex.Matches(input, """(\\""|[^""])*?""|[^ ]+")
        If item.ToString()(0) = """" And item.ToString()(item.ToString.Length - 1) = """" Then
            cmdargs.Add(item.ToString().Remove(0, 1).Remove(item.ToString.Length - 2, 1))
        Else
            cmdargs.Add(item.ToString())
        End If
    Next
    Return cmdargs(cmdargs.ToList().LastIndexOf(param) + 1)
End Function

如果您将此函数用作GetParameter("-f")并且您的命令行参数是 -f C://Windows/Users/Myname/Documents -d junk.exe然后您将获得C://Windows/Users/Myname/Documents作为输出。现在,如果您的命令行有空格,您可以将其括在双引号内,以避免将其解释为“多个参数”。

现在在事件处理方法(可能是按钮点击)中,您可以使用: -

My.Computer.FileSystem.Delete(GetParameter(TextBox1.Text, "-f"), GetParameter(TextBox1.Text, "-d"))

......完成工作。希望能帮助到你 :-)。如果您有任何疑问,请在下面发表评论。的更新