코드에서 CMD를 실행하려고합니다. 이것은 내가 내 명령 줄에서 실행 라인을, 그리고 내가 수동으로 실행할 때 작동 : /C C:\Dev\MySite\web\Website\comparison-tool\data\ & node csvToJson.js
C# 코드의 CMD 명령이 작동하지 않습니다. (Windows)
string commandText = String.Format("/C {0}{1} & node csvToJson.js", root, csvToJsonFolder);
Process.Start("CMD.exe", commandText);
의 CommandText가 평가 :
C:\Dev\MySite\web\Website\comparison-tool\data\ & node csvToJson.js
이 내 코드에서 무엇을 가지고
오류없이 실행되지만 아무 것도 발생하지 않은 것 같습니다. 명령 프롬프트가 열리지 않으므로 발생한 오류를 볼 수 없습니다. 이 명령은 파일이 특정 폴더에 기록되도록합니다. 명령을 수동으로 실행하면 파일이 기록되지만 코드를 실행하면 파일이 기록되지 않습니다.
편집 : 나는이 내 코드를 변경 :
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = commandText;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
process.StartInfo = startInfo;
process.Start();
string result = process.StandardOutput.ReadToEnd();
결과는 그냥 빈 문자열입니다. 오류 메시지 또는 아무것도 없습니다.
명령 프롬프트에서 각 공백 구분 문자열을 개별 입력으로 가져옵니다. – Media
'ProcessStartInfo'를 사용하여 출력을'StreamReader'로 리다이렉트하도록 말할 수 있습니다. 그러면 콘솔이 말하는 것을 읽을 수 있습니다. [이 CodeProject 기사] (http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C) 첫 번째 섹션에서 예제가 있습니다. 어쩌면 오류를 볼 수 있다면 더 디버깅 할 수 있습니다. – Equalsk
아마 ProcessStartInfo를 사용해 보시겠습니까? 두 번째 대답은 여기에 http://stackoverflow.com/a/1469790/2202391 – Daniil