繁体   English   中英

传递参数和文件名?

[英]Passing parameters and filename?

我需要编写一个VB.Net Winform应用程序,该应用程序通过资源管理器中Windows的上下文菜单调用,并且可以采用多个参数,其中最后一个参数是文件中带有空格的完整路径。

我尝试了以下作为参数,无济于事:

This is a test "%1" -> this
"This is a test "%1"" -> This is a test C:\Program
"This is a test" "%1" -> This is a test
"This is a test "%1%"" -> This is a test

有人知道如何让Windows将完整路径传递给文件名吗?

谢谢。

Windows正在通过完整路径。 您只是在解析它时遇到了麻烦。

This is a test "%1" -> This is a test "C:\Program Files\Blah blah"
-> cmdArgs(0) = "This"
-> cmdArgs(1) = "is"
-> cmdArgs(2) = "a"
-> cmdArgs(3) = "test"
-> cmdArgs(4) = "C:\Program Files\Blah blah"

在上面的示例中,由于短语“ This is a test”中的单词周围没有引号,因此它们作为单独的命令行参数传递。

"This is a test "%1"" -> "This is a test "C:\Program Files\Blah blah""
-> cmdArgs(0) = "This is a test "
-> cmdArgs(1) = "C:\Program"
-> cmdArgs(2) = "Files\Blah"
-> cmdArgs(3) = "blah"

在第二个示例中,您在%1终止第一个参数之前插入的引号使实际文件名不加引号。

"This is a test" "%1" -> "This is a test" "C:\Program Files\Blah blah"
-> cmdArgs(0) = "This is a test"
-> cmdArgs(1) = "C:\Program Files\Blah blah"

在第三个示例中,两个参数分别引用,因此它们作为程序的两个参数干净地到达。 这是你应该使用的那个。 您的问题是您cmdArgs(0)而忽略了其余cmdArgs中的其他cmdArgs 特别是,您忘记检查cmdArgs(1) ,这是文件名所在的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM