C#进程在process.Start()之后被取消
我正在尝试从C代码运行命令提示符命令 执行C#进程在process.Start()之后被取消,c#,.net,windows,cmd,process,C#,.net,Windows,Cmd,Process,我正在尝试从C代码运行命令提示符命令 执行Process.Start()步骤后,控制台窗口显示 发生系统错误1223。该操作已被服务器取消 用户 错误: Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = $"/C NET USE {driveChar}: {URL}";
Process.Start()
步骤后,控制台窗口显示
发生系统错误1223。该操作已被服务器取消
用户
错误:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = $"/C NET USE {driveChar}: {URL}";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.Start(); // After this step, console window shows the above error
StreamWriter streamWriter = process.StandardInput;
streamWriter.WriteLine(username);
...
...
// remaining code
但是,正如你所看到的,我并没有取消手术
我的代码:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = $"/C NET USE {driveChar}: {URL}";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.Start(); // After this step, console window shows the above error
StreamWriter streamWriter = process.StandardInput;
streamWriter.WriteLine(username);
...
...
// remaining code
出什么事了?关于解决这个错误有什么想法吗
编辑:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = $"/C NET USE {driveChar}: {URL}";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.Start(); // After this step, console window shows the above error
StreamWriter streamWriter = process.StandardInput;
streamWriter.WriteLine(username);
...
...
// remaining code
我实际上不需要重定向标准输出,所以我修改了代码,只重定向标准输入。但我仍然收到相同的错误。这将起作用…我使用/K开关,因为我不想终止CMDscreen并希望看到结果。如果需要自动终止,请使用/C
string strCmdText;
strCmdText = @"/K NET USE z: \\server\SharedFolderName";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
==========结果============================
如果要重定向标准输入和输出,必须重定向,否则会死锁。@DourHighArch我实际上不需要重定向标准输出,所以我修改了代码,只重定向标准输入。但我还是犯了同样的错误。谢谢。我认为这就是那个错误的原因。我无法让它与我原来的远程位置一起工作,但能够连接到其他位置。该服务器一定有问题。无论如何,我最终选择了一种不同的方法(),不必写入流程输入。