我想将一些参数传递给我编写的一个小程序。它是一个需要2个参数的程序。当我这样称呼它时:
d:\littleProgram.exe d:\test\folder\ test.pdf
Run Code Online (Sandbox Code Playgroud)
工作正常。
但是当我尝试这个:
d:\littleProgram.exe d:\test 2\folder\ test.pdf
Run Code Online (Sandbox Code Playgroud)
它认为有3个参数...
我尝试过这样的报价:
d:\littleProgram.exe "d:\test 2\folder\" test.pdf
Run Code Online (Sandbox Code Playgroud)
没运气。
这是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
Run Code Online (Sandbox Code Playgroud)
命令行参数以空格分隔。
如果您需要传递参数(例如文件名),该文件名具有(或可能具有)空格,则可以将其用双引号引起来。
例外情况是当参数以结尾时,\在这种情况下,您必须使用另一个\
因此,这是您需要的:
d:\littleProgram.exe "d:\test 2\folder\\" "test.pdf"
Run Code Online (Sandbox Code Playgroud)
因此,您的代码如下所示:
For i As Integer = 0 To My.Application.CommandLineArgs.Count - 1
Debug.Writeline(My.Application.CommandLineArgs(i))
Next
Run Code Online (Sandbox Code Playgroud)
输出:
d:\test 2\folder\
test.pdf
Run Code Online (Sandbox Code Playgroud)
一种更简单的方法可能是删除尾随斜杠并将目录和文件名添加在一起,Path.Combine或者使用或仅将完全限定名称作为参数传递(用双引号引起来)
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |