Загрузка...

Multi-line command problem (C #)

Thread in C# created by fuckedup Sep 2, 2019. 204 views

  1. fuckedup
    fuckedup Topic starter Sep 2, 2019 432 Jan 25, 2019
    Привет,хочу запхать многострочную команду в cmd,но не получается ;(
    Подскажите что делаю не так
    Code

    string Matrica = @"echo %random% %random% %random% %random% %random% %random% %random%
    % random % % random % % random %.
    goto start";

    void Cmd(string line)
    {
    Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = $"/c, {line}" });


    }

    private void Form1_Load(object sender, EventArgs e)
    {
    button1.Click += (s, a) =>
    {
    Cmd(Matrica);
    };
    }


    Нужно чтобы команда была как когда мы сохраняем в .bat txt-шник. Вот так:
    [IMG]
     
  2. Impage
    Impage Sep 2, 2019 Привет, как дела? 48 Apr 10, 2019
    Открыл тему, и стало плохо
     
  3. fuckedup
    fuckedup Topic starter Sep 2, 2019 432 Jan 25, 2019
    ?
     
  4. vitya790
    vitya790 Sep 2, 2019 19 Jun 3, 2017
    /n Добавь перед каждой строкой
     
  5. fuckedup
    fuckedup Topic starter Sep 3, 2019 432 Jan 25, 2019
    Я добавлял, результата 0
     
  6. Ascar
    Ascar Sep 5, 2019 Чемпион по спизженным велосипедам 335 Nov 24, 2016
  7. fuckedup
    fuckedup Topic starter Sep 5, 2019 432 Jan 25, 2019
    Я уже это пробовал,то что после\n не пишется в кмд
     
  8. Rudnight
    Rudnight Sep 5, 2019 1 Aug 14, 2019
    Используй это для свой задачи:
    Code
    Split('\n')
    Просто как пример:

    Code
            static void Main(string[] args)
    {
    const string commands = @"@echo off
    d:
    cd d:\games\doom 3\
    doom3.exe";
    var process = new Process
    {
    StartInfo = new ProcessStartInfo
    {
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    UseShellExecute = false

    }
    };
    process.Start();

    using (StreamWriter pWriter = process.StandardInput)
    {
    if (pWriter.BaseStream.CanWrite)
    {
    foreach (var line in commands.Split('\n'))
    pWriter.WriteLine(line);
    }
    }
    }

    И вообще зачем тебе такой большой текст?

    Лучше вот это:
    Code
    string Matrica = @"echo %random% %random% %random% %random% %random% %random% %random%
    % random % % random % % random %.
    goto start";
    Занеси в StringBuilder, или вообще отдельно в файл .bat и от туда вызывай/передавай что там надо.
     
Top
Loading...