2017-09-19 13 views
0

cmd 프롬프트 창에서 실행되는 두 개의 매개 변수로 프로세스를 시작하려고합니다. 문제는 process.start을 통해 실행하려고 할 때 발생합니다.Process.Start 인수가 작동하지 않습니다.

cmd 창에서 다음과 같이 보입니다.

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

나는 그것이 전체 문자열을 큰 따옴표를두고 .NET에 인수를 구축하려고하고 다음과 같습니다

. 프로그램은 그것을 두 개의 매개 변수로 해석하지 않고 멈춘다. 각 인수 주위에 큰 따옴표를 추가하면 여전히 그것을 잘못 해석합니다.

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은 어떤 작업을하고 있는지 잘 모르겠지만 샘플은 다음 작업을 수행하고 있습니다. 두 개의 변수 문자열이 선언됩니다. 두 문자열은 실행 파일과 함께 사용하려는 두 개의 인수 매개 변수를 나타냅니다.

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. 그것은 당신이 말하는 것처럼 보입니다. –