2017-09-19 3 views
0

Ich versuche, einen Prozess mit zwei Parametern zu starten, die aus einem Cmd-Eingabeaufforderungsfenster problemlos ausgeführt werden. Das Problem tritt auf, wenn ich versuche, es über process.start zu starten.Process.Start Argumente funktionieren nicht

Im cmd-Fenster sieht es so aus.

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

Wenn ich versuche, die Argumente in .NET zu bauen es doppelte Anführungszeichen um den gesamten String setzt und es sieht so aus. Das Programm interpretiert es nicht als zwei Parameter und stoppt einfach. Wenn ich jedem Argument doppelte Anführungszeichen hinzufüge, interpretiert es es immer noch falsch.

Ich weiß, es ist das Problem MyProg.exe (Hersteller-Programm, das ich nicht ändern kann), aber gibt es eine Möglichkeit, diesen Befehl zu senden, damit es funktioniert?

Wenn ich doppelte Anführungszeichen hinzufügen, funktioniert es, das Programm startet aber dann hat ein Problem und stoppt einfach.

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

Der letzte Schnipsel ist korrekteste sichergestellt, dass Räume in den realen Pfadnamen verursachen keine Probleme. Sie sind also auf "hat ein Problem und stoppt einfach", kann niemand erraten, was das bedeuten könnte, wenn Sie das Problem nicht beschreiben und diesen kleinen Code zeigen. –

+0

David Alves, ich würde gerne mehr Informationen geben, aber das ist es, was es tut. Es gibt KEINE Informationen aus dem Prozess. Ich höre einfach auf und sage mir nicht warum. Entschuldigung, ich kann nicht beschreibender sein. –

Antwort

0

Ich bin mir nicht ganz sicher, was D:\Projects\MyProg.exe tut, aber folgendes Beispiel arbeitet für. Zwei variable Strings werden deklariert. Die zwei Zeichenfolgen geben zwei Argumentparameter an, die ich mit der ausführbaren Datei verwenden möchte.

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 

See resultierende Screenshot:

enter image description here

+0

Hat es funktioniert? Wenn eine Antwort Ihnen geholfen hat, Ihr Problem zu lösen, akzeptieren Sie es bitte. –

+0

Danke help-info.de. Es scheint zu tun, wie Sie sagen. –

Verwandte Themen