在Process.Start()中传递参数

时间:2014-03-14 18:36:42

标签: vb.net visual-studio-2013

我想在Process.Start(“”,“”)中传递文件名作为参数。但是,我的参数似乎不起作用。

这是我的代码:

Public Class Form1

Public Sub Button1_click(sender As Object, e As EventArgs) Handles btnClick.Click

    Dim myFile0 As String = "C:\Users\Desktop\1.pdf"
    Dim myFile2 As String = "C:\Users\Desktop\1s.pdf"

    Process.Start("cmd.exe", "/k pdftk" & myFile & "output" & myFile2 & "owner_pw password")

这不起作用,但如果我使用文件路径而不是myFile0或myFile2,它可以正常工作。 我需要能够使用变量。

任何输入为什么它不起作用。我是vb.net的新手

谢谢!

2 个答案:

答案 0 :(得分:2)

您忘记了文件名前后的空格。建议使用双引号强烈,以避免在路径名包含空格时出现问题。使用复合格式时,这总是更容易实现。修正:

Dim args = String.Format("/k pdftk {0}{1}{0} output {0}{2}{0} owner_pw password", _
               """", myFile, MyFile2)
Process.Start("cmd.exe",  args)

答案 1 :(得分:1)

如果只在参数中指定了文件路径,Process.Start将尝试使用默认文件处理程序(例如Adobe for PDF文件)启动该文件。如果要使用参数启动特定程序,则应将可执行文件路径传递给处理.pdf文件的程序,命令行参数位于第二个参数中。

Process.Start(PathToPDFHandler,“/ k pdftk”& myFile&“output”& myFile2&“owner_pw password”)

类似的东西。