我尝试使用文本文件启动记事本的本地实例,以尝试c#cmd行参数,以便最终在远程连接脚本中使用。我使用System.Diagnostics.Process,但StartInfo.Arguments实际上并没有完全运行并打开记事本实例。
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = @"cd\ start notepad C:\test\testcmdline.txt";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.Start();
窗口以root身份打开,告诉我cd \正在运行,但是"启动记事本"似乎没有运行。
我是否遗漏了有关StartInfo.Arguments结构的内容?
编辑:我试图弄清楚如何在远程服务器上运行python脚本,并将其用作c#中cmd中运行事物的测试。虽然在记事本中运行它很好,但我不确定该原则是否会延续到远程运行python脚本的最终实现,所以我试图学习如何通过一般来说,在C#中使用cmd。
答案 0 :(得分:0)
我最终使用了更简单的2 arg Process.Start。
string cmdText;
cmdText = @"/C C:\test\testcmdline.txt";
Process.Start("cmd.exe", cmdText);
答案 1 :(得分:0)
尝试在参数的开头添加 /c。
或者上面的任务可以如下完成
var process = new ProcessStartInfo
{
FileName = "cmd.exe",
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden,
Arguments = @"/c start notepad C:\test\testcmdline.txt"
};
Process.Start(process );