728x90
example.vbs 파일 내용
' input value
arg1 = WScript.Arguments.Item(0)
arg2 = WScript.Arguments.Item(1)
' output value
WScript.StdOut.WriteLine(arg1 & " AND " &arg2)
example.vbs 파일을 실행하는 C# 코드
System.Diagnostics.Process scriptProc = new System.Diagnostics.Process();
scriptProc.StartInfo.FileName = @"cscript";
// vbs 파일 경로를 원하는 위치에 맞게 변경 & argument 추가될 때마다 {num} 추가(1부터 시작), 파일 경로 뒤에 argument 값 삽입
scriptProc.StartInfo.Arguments = string.Format("\"{0}\" \"{1}\" \"{2}\"", @"c:\rpa\example.vbs", "arg1", "arg2");
// 옵션 설정
scriptProc.StartInfo.RedirectStandardOutput = true;
scriptProc.StartInfo.RedirectStandardError = true;
scriptProc.StartInfo.UseShellExecute = false;
var outputWriter = new System.IO.StringWriter();
scriptProc.OutputDataReceived += (sender, args) => outputWriter.WriteLine(args.Data);
var errorWriter = new System.IO.StringWriter();
scriptProc.ErrorDataReceived += (sender, args) => errorWriter.WriteLine(args.Data);
scriptProc.Start();
scriptProc.BeginOutputReadLine();
scriptProc.BeginErrorReadLine();
scriptProc.WaitForExit();
String result;
if (scriptProc.ExitCode == 0){
result = outputWriter.GetStringBuilder().ToString(); // 정상 수행됐을 경우 리턴될 결과값
}
else{
result = errorWriter.GetStringBuilder().ToString();
}
scriptProc.Close();
//Microsoft (R) Windows Script Host 버전 5.812
//Copyright (C) Microsoft Corporation. All rights reserved.
//
//arg1 AND arg2
//
// 위와 같은 형식으로 리턴됨. Script 프로그램 정보와 개행문자 제거 후 리턴값 사용해야 함
728x90
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 현재 PC의 IP주소 가져오기 (0) | 2021.07.21 |
---|---|
[C#] datatable타입 변수를 엑셀에 기록(Office 라이센스 필요없음) (0) | 2021.06.24 |
[C#] URL에서 파일 바로 다운로드 받기 (0) | 2021.03.29 |
[C#] zip 파일로 폴더/파일 압축 및 압축 해제 (0) | 2021.03.29 |
[C#] C#에서 VBScript 실행시키기 (0) | 2021.03.29 |