2012-06-19 3 views
0

이 C# 응용 프로그램을 사용하면 SAP에서 해당 쿼리를 수행하는 데 사용할 시작 및 종료 날짜 범위를 선택할 수 있습니다. 하나의 인수를 전달하는 응용 프로그램을 만들었고 그렇게 작동했지만 두 개를 수행 할 때는 작동하지 않습니다. 누구든지 도와 줄 수 있습니까?C# 변수를 VBScript로

C#

 private void button1_Click(object sender, EventArgs e) 
     { 
      String startDate = dateTimePicker1.Value.ToString("MM/dd/yyyy"); 
      String finishDate = dateTimePicker2.Value.ToString("MM/dd/yyyy"); 
      Process processbefore = new Process(); 
      processbefore.StartInfo.FileName = "C:\\Program Files\\SAP\\FrontEnd\\SAPgui\\saplogon.exe"; 
      processbefore.Start(); 
      processbefore.WaitForExit(1000 * 5 * 1); 
      Process process = new Process(); 
      process.StartInfo.FileName = "C:\\Script2.vbs"; 
      process.StartInfo.Arguments = startDate; 
      process.StartInfo.Arguments = finishDate; 
      process.StartInfo.ErrorDialog = true; 
      process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; 
      process.Start(); 
      process.WaitForExit(1000 * 60 * 10); // wait up to 5 minutes. 
     } 
    } 
} 

Script2.vbs - VBScript를 (기함)

startDate = WScript.Arguments.Item(0) 
finishDate = WScript.Arguments.Item(1) 

는 I는 finishDate WScript.Arguments.Item = 1

범위 외인 첨자를 얻을 그 후 나머지 코드. 다른 인수를 추가하여 VBScript에 전달하는 방법을 알아야합니다. 다른 줄을 추가하면 오류가 발생합니다. 대신

+0

정말 그 코드를 모두 볼 필요가 있습니까? 6 줄의 코드로 문제를 재현 할 수 있다고 생각합니다. 목록의 어떤 코드 줄이 실패하고 어떤 오류 메시지가 표시됩니까? –

답변

0

: 인수 공간 Windows에서 분리하기 때문에

process.StartInfo.Arguments = startDate + " " + finishDate; 

이이며, process.StartInfo.Arguments 모든 인수를 포함하는 단일 문자열입니다

process.StartInfo.Arguments = startDate; 
process.StartInfo.Arguments = finishDate; 

당신은 할 수 있습니다.

참고 : 인수 중 하나에 공백이 있으면 따옴표를 사용해야합니다. 그렇지 않으면 여러 인수로 해석됩니다. 예 :

process.StartInfo.Arguments = "\"" + startDate + "\" \"" + finishDate "\""; 
+0

즉시 작업. 빠른 도움에 감사드립니다. – tluck234

관련 문제