当前位置:  开发笔记 > 后端 > 正文

带空格的参数

如何解决《带空格的参数》经验,为你挑选了1个好方法。

我想将一些参数传递给我编写的一个小程序。它是一个需要2个参数的程序。当我这样称呼它时:

d:\littleProgram.exe d:\test\folder\ test.pdf

工作正常。

但是当我尝试这个:

d:\littleProgram.exe d:\test 2\folder\ test.pdf

它认为有3个参数...

我尝试过这样的报价:

d:\littleProgram.exe "d:\test 2\folder\" test.pdf

没运气。

这是vb代码:

Module Module1
        Sub Main(ByVal sArgs() As String)
            If sArgs.Length = 0 Then
                ... some code
            ElseIf sArgs.Length = 2 Then
                ... some code
            End If
         End Sub
End Module

Matt Wilko.. 5

命令行参数以空格分隔。

如果您需要传递参数(例如文件名),该文件名具有(或可能具有)空格,则可以将其用双引号引起来。

例外情况是当参数以结尾时,\在这种情况下,您必须使用另一个\

因此,这是您需要的:

d:\littleProgram.exe "d:\test 2\folder\\" "test.pdf"

因此,您的代码如下所示:

For i As Integer = 0 To My.Application.CommandLineArgs.Count - 1
    Debug.Writeline(My.Application.CommandLineArgs(i))
Next

输出:

d:\test 2\folder\
test.pdf

一种更简单的方法可能是删除尾随斜杠并将目录和文件名添加在一起,Path.Combine或者使用或仅将完全限定名称作为参数传递(用双引号引起来)



1> Matt Wilko..:

命令行参数以空格分隔。

如果您需要传递参数(例如文件名),该文件名具有(或可能具有)空格,则可以将其用双引号引起来。

例外情况是当参数以结尾时,\在这种情况下,您必须使用另一个\

因此,这是您需要的:

d:\littleProgram.exe "d:\test 2\folder\\" "test.pdf"

因此,您的代码如下所示:

For i As Integer = 0 To My.Application.CommandLineArgs.Count - 1
    Debug.Writeline(My.Application.CommandLineArgs(i))
Next

输出:

d:\test 2\folder\
test.pdf

一种更简单的方法可能是删除尾随斜杠并将目录和文件名添加在一起,Path.Combine或者使用或仅将完全限定名称作为参数传递(用双引号引起来)

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有