업로드 된 모든 파일에서 바이러스 검사를 실행하는 배치 파일을 실행하기 위해 내 C# 프로그램에 메소드를 구현했습니다.C# 배치 파일을 실행하면 명령이 인식되지 않습니다.
public static Int32 ExecuteCommand(String filePath, Int32 Timeout){
Int32 ExitCode;
ProcessStartInfo ProcessInfo = new ProcessStartInfo();
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = true;
ProcessInfo.FileName = filePath;
Process proc = Process.Start(ProcessInfo);
proc.WaitForExit(Timeout);
ExitCode = proc.ExitCode;
proc.Close();
return ExitCode;
}
이제 내 배치 파일.
@ECHO OFF
c:
cd "..\AVG\AVG9\"
avgscana.exe /SCAN="..\learninglounge.com.solar.quarantine\" /REPORT="..\learninglounge.com.solar.antivirus\virusReports\report.txt"
편집 : 나는 평균 EXE 파일 및 디렉토리에 대한 완전한 링크가 않지만 유래을 게시의 목적을 위해 .. 여기로 대체했다. 죄송합니다. 혼란이 생겼다면 죄송합니다.
내 문제는 내 배치 파일의보고 측면입니다. 배치 파일을 두 번 클릭하면 스캔하여 문제가없는 보고서를 만들 수 있습니다. 내 C#을 통해 실행할 때 # 2 종료 코드가; 명령이 인식되지 않습니다. 배치 파일의 보고서 부분을 제거하면됩니다. 이제 분명히이 권한은 쓰기 권한이 있지만이를 확인한 후 가장 된 사용자는 디렉토리에 대한 쓰기 권한을 갖습니다. 임 누락 된 것이 있습니까?
덕분에 모든
avgscana.exe는 프로그램에있는 디렉토리에 있습니까? – TJHeuvel
아니, 내가 파일 경로를 제거하고 여기에 대한 배치에서 ..로 대체하지만 실제 파일에서 정규화되었습니다 – Shannow
일부 오프 주제 제안 : Microsoft는 CLR 유형 이름을 사용하지 말 것을 권장하지만 C#을 사용하십시오 사람. 그것은 Int32가 "int"로 선언되어야 함을 의미합니다. –