Как запустить пакетный скрипт в C # с условием else? [dубликат]

Вы можете использовать функцию trim из php, чтобы обрезать обе стороны (влево и вправо)

  trim ($ yourinputdata, "");   

Или

  trim ($ yourinputdata);   

Вы также можете использовать

  ltrim () - удаляет пробелы или другие предопределенные символы с левой стороны строки rtrim () - удаляет пробелы или другие  предопределенные символы с правой стороны строки  

Система: PHP 4,5,7 Документы: http://php.net/manual/en/function.trim.php

1
задан Peter 5 June 2011 в 13:57
поделиться

4 ответа

Откройте канал в командной оболочке и запишите программный код в этот канал. Вот пример: http://support.microsoft.com/default.aspx?scid=kb;en-us;190351

4
ответ дан ceving 16 August 2018 в 04:47
поделиться
  • 1
    Интересная идея. Но действительно ли это проще, чем извлечение скрипта во временный файл? – Codo 5 June 2011 в 14:05
  • 2
    Вопрос не в том, что проще. Вопрос состоял в том, как это сделать, не записывая код в файл. – ceving 5 June 2011 в 14:09

cmd.exe не будет запускать скрипт из памяти вашего процесса. Опции, которые кажутся мне наиболее очевидными:

  1. Расслабьте ограничение, которое останавливает извлечение скрипта во временный файл.
  2. Сжатие вашего сценария в одну строку и использование cmd.exe / C , чтобы выполнить его. Вам нужно будет использовать разделитель команд & amp; & amp; .
  3. Напишите свой собственный интерпретатор командных команд.
  4. Используйте другой язык сценариев.

Варианты 3 и 4 на самом деле не очень привлекательны! Вариант 1 выглядит довольно хорошо для меня, но я не знаю, что приводит к вашим ограничениям.

4
ответ дан David Heffernan 16 August 2018 в 04:47
поделиться

В C # это простой способ использовать System.Diagnostics для работы. How!?

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

Некоторое число:

   использование System.Diagnostics;  static void Main () {Process batch;  batch = Process.Start ("ping.exe", "localhost");  batch.WaitForExit ();  batch.Close ();  batch = Process.Start ("choice.exe", "");  batch.WaitForExit ();  batch.Close ();  batch = Process.Start ("ping.exe", "localhost -n 10");  batch.WaitForExit ();  batch.Close ();  }  

Если вы не хотите запускать каждую команду в отдельном процессе, решение выполняется с простым перенаправлением потока.

  ProcessStartInfo startInfo = new ProcessStartInfo  ();  startInfo.FileName = @ "cmd.exe";  // Укажите имя exe.  startInfo.UseShellExecute = false;  startInfo.ErrorDialog = false;  startInfo.RedirectStandardInput = true;  // // Запустите процесс.  // Process process = Process.Start (startInfo);  string [] batchFile = {"ping localhost", "ping google.com -n 10", "exit"};  int cmdIndex = 0;  while (! process.HasExited) {if (process.Threads.Count == 1 & amp; cmdIndex & lt; batchFile.Length) {process.StandardInput.WriteLine (batchFile [cmdIndex ++]);  }}  
2
ответ дан Nikolay 16 August 2018 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: