如何通过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文件的主要内容,如果未能解决你的问题,请参考以下文章

如何转义 schtasks /tr 参数

如何将文件中的其他参数从 Angular 传递给 ASP.NET Core 控制器?

ASP.NET(C#)如何使用期Request获取通过网址传递的参数?

ASP.Net MVC3 - 将剃刀标记作为参数传递

如何将json字符串传递给webmethod c# ASP.NET

通过 Ajax 将布尔值传递给 asp.net api 控制器