Мне нужно запустить повышенный процесс с C#, и мне нужно его перенаправить ввод и вывод. Поскольку делать все три невозможно, я думаю, что, возможно, придумал обходной путь, но он, похоже, не работает.Перенаправление вывода из повышенного процесса 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, что он не смог открыть или прочитать мой файл. Что я делаю неправильно?
EDIT
Не нашли решение, но я нашел обходной путь.
Я пытался получить букву диска USB-накопителя, которую я тогда хотел установить как только для чтения. Однако, используя DriveInfo.Name
, я смог его получить. (Было бы более полезно, если бы это было вызвано DriveInfo.driveLetter
) Затем я написал свой сценарий DiskPart соответственно.