1) 尝试编辑您的 bat/cmd 以接收 C# 中的参数:
2) 你需要编辑你的 bat/cmd 来接收你的 C# 参数:
这里是示例 c# 代码将 2 个参数发送到 bat/cmd 文件
using System;
using System.Diagnostics;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Process.Start(@"c:\batchfilename.bat", "\"1st\" \"2nd\"");
}
}
}
Obs.: c# 来自@T.S.Sathish answer here
- 使用从 C# 传递的 %1 和 %2 参数的 bat 文件代码:
@echo off
%__APPDIR__%mode.com con: cols=60 lines=6
echo/
echo/ your arg_CS[0] == arg_bat[%%1] == %1
echo/ your arg_CS[1] == arg_bat[%%2] == %2
echo/ ________________________________________________________
echo/ Please, press any key for me got to go drink a coffe...
@%__APPDIR__%timeout.exe -1 >nul
选项 2:隐藏控制台窗口、传递参数并获取输出
using System;
using System.Diagnostics;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var process = new Process();
var startinfo = new ProcessStartInfo(@"c:\batchfilename.bat", "\"1st_arg\" \"2nd_arg\" \"3rd_arg\"");
startinfo.RedirectStandardOutput = true;
startinfo.UseShellExecute = false;
process.StartInfo = startinfo;
process.OutputDataReceived += (sender, argsx) => Console.WriteLine(argsx.Data); // do whatever processing you need to do in this handler
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
}
}
这是基于我对英语的有限理解,如果不正确,抱歉,如果可能,请告诉我...