2017-09-19 9 views
0

cmdプロンプトウィンドウから実行する2つのパラメーターを使用してプロセスを開始しようとしています。問題は、process.startで起動しようとしたときに発生します。Process.Start引き数が機能しない

cmdウィンドウでは、次のようになります。

D:\Projects\MyProg.exe "D:\Projects\MyScript.txt" "D:\Projects\MyInputData.txt"

私はそれが文字列全体を二重引用符を置く.NETで引数を構築しようと、それはこのようになります

。プログラムはそれを2つのパラメータとして解釈せず、ただ停止します。各引数の前後に二重引用符を追加すると、依然としてそれを誤解しています。

MyProg.exeの問題(私は変更できないベンダープログラム)は知っていますが、このコマンドを送信する方法はありますか?

myProcess.StartInfo.Arguments = "D:\Projects\MyScript.txt D:\Projects\MyInputData.txt" 

二重引用符を追加すると、プログラムが開始されますが問題が発生して停止します。

myProcess.StartInfo.Arguments = """D:\Projects\MyScript.txt"" ""D:\Projects\MyInputData.txt""" 
+3

を、それが実際のパス名にスペースがトラブルを引き起こさないことを保証します。だから、あなたは「問題があり、ただ止まる」ということになります。問題を説明せずにこの小さなコードを表示すると、それが意味することは誰も推測できません。 –

+0

David Alves、私はより多くの情報を提供したいと思っていますが、それはそうです。プロセスからの情報はありません。私はちょうど停止し、なぜ私に教えていない。申し訳ありませんが、私はそれ以上説明することはできません。 –

答えて

0

D:\Projects\MyProg.exeさんは何をしているのですか? 2つの変数文字列が宣言されています。 2つの文字列は、実行可能ファイルで使用する2つの引数パラメータを示します。

Public Class Form1 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    '// Set first file parameter to the executable 
    Dim sourceFileName As String = "source.txt" 
    '// Set second file parameter to the executable 
    Dim targetFileName As String = "target.txt" 

    '// Create a new ProcessStartInfo 
    Dim p As New ProcessStartInfo 

    '// Specify the location of the binary 
    p.FileName = "D:\_working\ConsoleApplication3.exe" 

    '// Use these arguments for the process 
    p.Arguments = " """ & sourceFileName & """ """ & targetFileName & """ -optionalPara" 

    ' Use a hidden window 
    'p.WindowStyle = ProcessWindowStyle.Hidden 

    ' Start the process 
    Process.Start(p) 

    End Sub 
End Class 

は、結果のスクリーンショットを参照してください:最後のスニペットは、最も正確である

enter image description here

+0

それは機能しましたか?あなたの問題を解決するのに役立つ回答があれば、それを受け入れてください。 –

+0

ありがとうhelp-info.de。あなたが言うようにそれはそうするように見えます。 –

関連する問題