作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码行执行位于远程计算机上的批处理文件:
System.Diagnostics.Process.Start(\\10.0.24.103\somePath\batchFile.bat);
它阻塞在这行代码上。当我尝试手动运行它时(通过在 Windows 资源管理器中写入该地址),它可以运行,但我必须先接受安全警告消息。我假设这就是它在通过代码完成时阻塞的原因……有什么方法可以强制它通过代码执行吗?
最佳答案
我通过向 ProcessStartInfo
对象添加更多细节解决了我的问题:
var process = new Process();
var startInfo = new ProcessStartInfo
{
CreateNoWindow = true,
FileName = "cmd.exe",
Arguments = "/c \"\"" + batchFile + "\"\"",
WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true
};
process.StartInfo = startInfo;
process.Start();
process.WaitForExit(30000);
我需要指定使用 cmd.exe
,并用双引号将 batchFile
路径括起来,以防路径中有空格。
关于c# - 执行位于远程机器上的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440681/
我是一名优秀的程序员,十分优秀!