c# - Process.StartInfo.WorkingDirecotry 在设置 StartInfo.Verb = "runas" 以启动 .bat 文件(包含 cd 命令)时没有用
问题描述
背景:我想使用 C# 程序调用一个 bat 文件,该文件将转到下一个不同的文件夹,然后执行不同的 exe。
这是 test.bat 文件:
echo test begin
cd test1
setup1.exe
cd test2
setup2.exe
echo test finished
echo off
这是我的 C# 代码:
using (Process proc = new Process())
{
string command = @"c:\users\danvy\Desktop\script\test.bat";
proc.StartInfo.FileName = command;
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(command);
//run as admin
proc.StartInfo.Verb = "runas";
proc.Start();
while (!proc.HasExited)
{
proc.WaitForExit(1000);
}
}
在这种情况下,setup1.exe 和 setup2.exe 无法执行。
但是如果注释行:proc.StartInfo.Verb = "runas"; 然后可以调用setup1.exe和setup2.exe运行。
太奇怪了,好像 set proc.StartInfo.Verb = "runas"; 工作目录不工作。
在我看来, Verb = "runas" 只是为了设置权限让程序以管理员身份运行,为什么它会使 Process.StartInfo.WorkingDirecotry 没有用?
解决方案
推荐阅读
- amazon-web-services - 由于变量太长,AWS CLI S3 COPY 命令获取 FINDSTR 错误?
- javascript - 当我单击类别时打开子类别但是当我单击子类别时未打开它的子类别
- java - 如何使用java jersey将示例json对象添加到swagger body?
- android-studio - ubuntu 18.04 上的 Pepper android sdk 模拟器错误
- angularjs - 从属性文件加载锚标记时,ui-sref 无法正常工作
- swift - 我想在不使用标签栏控制器的情况下制作自定义标签栏
- reactjs - serviceWorker.js 中未定义窗口
- python-3.x - 将字典附加到嵌套字典 Python 3.6
- javascript - 如何显示来自 JSON 字符串转换数组的数据
- python - 如何有效地基于 and 或 params 在 Python 中拆分字符串?