我正在尝试使用Visual Studios 2005中的Windows Process.start服务来调用调用bat文件的Windows任务调度程序(schtasks)。该过程工作正常,但bat文件接受参数,但当我尝试将参数传递到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部分的情况下运行良好。如果我想将此参数传入bat文件,则不会接受它。有没有人知道怎么做,以便bat文件通过Schtasks接收参数?
感谢!!!
答案 0 :(得分:1)
schtasks.exe没有任何命令行功能可以将参数传递到计划任务中。一种可能的方法是将参数文本保存在自己的(临时)bat文件中,其中包含特制的内容以将其设置为环境变量。然后,您所要做的就是从计划的任务bat文件中调用参数bat文件,并设置环境变量。
参数bat文件的内容如下所示:
set parm=ParameterToPass2
然后,您计划的任务bat文件的内容将执行参数bat文件:
C:\wherever\argument.bat