如何通过asp.net schtasks将参数传递给bat文件
Posted
技术标签:
【中文标题】如何通过asp.net schtasks将参数传递给bat文件【英文标题】:How to pass in parameters to bat file via asp.net schtasks 【发布时间】:2012-12-08 14:40:11 【问题描述】:我正在尝试使用 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接收参数?
谢谢!!!
【问题讨论】:
【参考方案1】:schtasks.exe 没有任何用于将参数传递到计划任务的命令行功能。一种可能的方法是将参数文本保存在它自己的(临时)bat 文件中,其中包含经过特殊设计的内容以将其设置为环境变量。然后你所要做的就是从计划任务bat文件中调用参数bat文件,然后设置环境变量。
参数 bat 文件的内容如下所示:
set parm=ParameterToPass2
您的计划任务 bat 文件的内容将执行参数 bat 文件:
C:\wherever\argument.bat
【讨论】:
以上是关于如何通过asp.net schtasks将参数传递给bat文件的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件中的其他参数从 Angular 传递给 ASP.NET Core 控制器?
ASP.NET(C#)如何使用期Request获取通过网址传递的参数?