#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 — Попробуйте обновить часть, которую я добавил к ответу