2012-12-21 4 views
3

Visual Studio 2005에서 Windows Process.start 서비스를 사용하여 bat 파일을 호출하는 Windows 작업 스케줄러 (schtasks)를 호출하려고합니다. 이 프로세스는 bat 파일이 매개 변수를 사용한다는 점을 제외하고는 잘 작동하지만 매개 변수를 bat 파일에 전달하려고 할 때는 작동하지 않습니다.asp.net schtasks를 통해 bat 파일에 매개 변수를 전달하는 방법

public string RunSchtasks(string MachineName) 
{ 
    ErrorMessage = null; 
    Process myProcess = new Process(); 
    ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("schtasks"); 
    myProcessStartInfo.UseShellExecute = false; 
    myProcessStartInfo.RedirectStandardError = true; 
    myProcessStartInfo.RedirectStandardOutput = true; 
    myProcessStartInfo.Arguments = "/run /s Machinename /tn mytest ParameterToPass2Bat"; 

    myProcess.StartInfo = myProcessStartInfo; 

    try 
    { 
     myProcess.Start(); 
     StreamReader myStreamReader1 = myProcess.StandardOutput; 
     string QueryResult = myProcess.StandardOutput.ReadToEnd(); 
    } 

내 코드는 ParameterToPass2Bat 부분없이 정상적으로 실행됩니다. 이 매개 변수를 박쥐 파일에 전달하려면 걸리지 않을 것입니다. 누구든지 방망이 파일이 Schtasks를 통해 매개 변수를 가져 오도록하는 방법을 알고 있습니까?

감사합니다 !!!

답변

1

schtasks.exe에는 예약 된 작업에 인수를 전달하기위한 명령 줄 기능이 없습니다. 가능한 한 가지 방법은 매개 변수 텍스트를 환경 변수로 설정하기 위해 특수 제작 된 내용을 가진 자체 (임시) bat 파일에 저장하는 것입니다. 그런 다음 예약 된 작업 bat 파일에서 인수 bat 파일을 호출하면 환경 변수가 설정됩니다.

C:\wherever\argument.bat 
: 다음 인수 박쥐 파일을 실행할 것입니다 귀하의 예약 된 작업 박쥐 파일의

set parm=ParameterToPass2 

내용 : 인수 박쥐 파일의

내용 등이 보일 것이다