我想将一些参数传递给我编写的一个小程序。它是一个需要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
或者使用或仅将完全限定名称作为参数传递(用双引号引起来)
命令行参数以空格分隔。
如果您需要传递参数(例如文件名),该文件名具有(或可能具有)空格,则可以将其用双引号引起来。
例外情况是当参数以结尾时,\
在这种情况下,您必须使用另一个\
因此,这是您需要的:
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
或者使用或仅将完全限定名称作为参数传递(用双引号引起来)