Запустить командную строку Команды не могут запускать команды внутри "" - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь запускать команды Windows с этим кодом C #:

Process cmd = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.RedirectStandardInput = true;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.CreateNoWindow = false;
        cmd.StartInfo.UseShellExecute = false;
        cmd.Start();

        cmd.StandardInput.WriteLine("/C @shift /0");
        cmd.StandardInput.WriteLine("/C @echo off");
        cmd.StandardInput.WriteLine("/C color 04");
        cmd.StandardInput.WriteLine("/C title Loop Anti-Ban (Ignore Errors) (RGB)");
        cmd.StandardInput.WriteLine("/C :a");
        cmd.StandardInput.WriteLine("/C reg delete "HKEY_CURRENT_USER\Software\Epic Games\Unreal Engine\Identifiers" /f");
        cmd.StandardInput.Flush();
        cmd.StandardInput.Close();
        cmd.WaitForExit();
        Console.WriteLine(cmd.StandardOutput.ReadToEnd());

, но он не позволяет мне запускать cmd.StandardInput.WriteLine("/C reg delete "HKEY_CURRENT_USER\Software\Epic Games\Unreal Engine\Identifiers" /f");

Не знаю, почему ... (другоекартинка должна быть четкой screenshot)

1 Ответ

0 голосов
/ 31 декабря 2018

Вам необходимо экранировать " в вашей строке, например, \" и \ в пути также должны быть экранированы \\:

cmd.StandardInput.WriteLine("/C reg delete \"HKEY_CURRENT_USER\\Software\\Epic Games\\Unreal Engine\\Identifiers\\" /f");
...