Не удается найти вывод файла

#c# #visual-studio #cmd

Вопрос:

Когда я пытаюсь запустить cade, он выдает вывод «не удается найти файл».

 ProcessStartInfo psi = new ProcessStartInfo(@"for / f ""delims="" % i in ('""C:Program Files (x86)AnyDeskAnyDesk.exe"" --get-id') do set CID =% i",
                 "echo % CID %"
                 );
            psi.UseShellExecute = false;
            psi.RedirectStandardOutput = true;
            psi.CreateNoWindow = true;
            var proc = Process.Start(psi);
            string s = proc.StandardOutput.ReadToEnd();
            Console.WriteLine(s);
 

Командная строка работает в cmd.

 for /f "delims=" %i in ('"C:Program Files (x86)AnyDeskAnyDesk.exe" --get-id') do set CID=%i 
echo %CID%
 

Ответ №1:

У вас есть процесс запуска для использования командной строки cmd.exe , и затем вы должны передать свою команду, вот так

 string command = @"for / f ""delims="" % i in ('""C:Program Files (x86)AnyDeskAnyDesk.exe"" --get-id') do set CID =% i",
                 "echo % CID %"
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", command);
 

Обновить:

Попробуйте использовать escape-символ, подобный этому,

 ProcessStartInfo psi = new ProcessStartInfo("for /f "delims =" %i in ('"C:\Program Files (x86)\AnyDesk\AnyDesk.exe\" --get-id') do set CID=%i amp;amp; echo % CID % ");
 

Комментарии:

1. Мой код работает, если я помещаю другие команды, например ProcessStartInfo psi = new ProcessStartInfo("help"). , я думаю, что неправильно написал косые черты и кавычки в неправильной команде.

2. @r.Sayt — Попробуйте обновить часть, которую я добавил к ответу