我需要从 C# 运行一个提升的进程,并且我需要它来重定向输入和输出。由于这三个都做是不可能的,我想我可能想出了一个解决方法,但它似乎不起作用。
Process p = new Process();
string command1 = "/s " + path + "\\script1.script";
p.StartInfo = new ProcessStartInfo("diskpart",command1)
{
UseShellExecute = true,
CreateNoWindow = false,
Verb="runas"
};
p.Start();
p.WaitForExit();
这样可行。它使用刚刚执行的脚本调用 DiskPart list volume
。我想将输出捕获到outfile1.txt
. 当我从终端运行以下命令时,它可以工作:
diskpart /s script1.script>outfile1.txt
但是,当我修改command1
为时"/s " + path + "\\script1.script>+path+"\\outfile1.txt"
,我从 DiskPart 收到一个错误,它无法打开或读取我的文件。我究竟做错了什么?
编辑
没有找到解决方案,但我找到了解决方法。
我试图获取 USB 驱动器的驱动器号,然后我想将其设置为只读。但是,使用DriveInfo.Name
我能够得到它。(如果调用它会更有帮助DriveInfo.driveLetter
)然后我相应地编写了我的 DiskPart 脚本。