Загрузка...

Проблема с многостроковой командой (С#)

Тема в разделе C# создана пользователем fuckedup 2 сен 2019. 199 просмотров

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

    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 2 сен 2019 Привет, как дела? 48 10 апр 2019
    Открыл тему, и стало плохо
     
  3. fuckedup
    fuckedup Автор темы 2 сен 2019 432 25 янв 2019
    ?
     
  4. vitya790
    vitya790 2 сен 2019 19 3 июн 2017
    /n Добавь перед каждой строкой
     
  5. fuckedup
    fuckedup Автор темы 3 сен 2019 432 25 янв 2019
    Я добавлял, результата 0
     
  6. Ascar
    Ascar 5 сен 2019 Чемпион по спизженным велосипедам 335 24 ноя 2016
  7. fuckedup
    fuckedup Автор темы 5 сен 2019 432 25 янв 2019
    Я уже это пробовал,то что после\n не пишется в кмд
     
  8. Rudnight
    Rudnight 5 сен 2019 1 14 авг 2019
    Используй это для свой задачи:
    Код
    Split('\n')
    Просто как пример:

    Код
            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);
    }
    }
    }

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

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