我有一个包含以下内容的批处理文件
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process secondBat.bat -Verb runas"
secondBat.bat具有以下内容
sc stop theService
pause
我尝试使用
运行此批处理文件(第一个)int exitCode;
var processInfo = new ProcessStartInfo("cmd.exe", "/C " + @"c:\FirstBat.bat");
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
Process process = Process.Start(processInfo);
process.WaitForExit();
exitCode = process.ExitCode;
process.Close();
我得到的exitCode是“1”(因此失败),批处理文件(和内容)没有正确执行。
我根本不知道powershell,所以我很感激这里的指针。我做错了什么?
编辑:我评论了processInfo.CreateNoWindow = true;
,现在我可以看到这条消息了
“由于系统无法找到指定文件的错误,该命令无法运行”
答案 0 :(得分:1)
问题归结为步行前的跑步。
解决方案:
总是添加一个工作路径你越是具体,就越难以选择错误的东西。所以在这种情况下
processInfo.WorkingFolder = @"c:\";
其他选项可能直接在C#或1个批处理文件中完成。