Как запускать командную строку cmd ?

  • Автор темы Автор темы squall1988
  • Дата начала Дата начала
вы сам батник заполните нужными данными. дополнительные параметры не в постере должны быть в этом случае. а все должно писаться внутри батника
А если мне нужно через командную строку запустить скрипт , который принимает 2 параметра, первый известный, но второй будет каждый раз меняться, как ответ на первый введенный? Первый - номер телефона, второй - код подтверждения, который придет только после запуска скрипта ...
 
Кроме как эмулировать ввод с клавиатуры ничего не приходит на ум ...
 
А если мне нужно через командную строку запустить скрипт , который принимает 2 параметра, первый известный, но второй будет каждый раз меняться, как ответ на первый введенный? Первый - номер телефона, второй - код подтверждения, который придет только после запуска скрипта ...
Использовать экшен - "Запуск программы".
 
a2Xq1z6swp89aA

KAgxbgyUEOl0ar


что не получается ни запуск программы ни запуск собственного кода C#
 
Есть команда которая очищает все логи на WIN7:
Код:
Развернуть Свернуть Копировать
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
Если её просто прописать в командной строке - все ОК.

Если вставить в батник и запускать через запуск программы:
Код:
Развернуть Свернуть Копировать
start "" for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
Отрабатывает без ошибок, но логи не очищает.

Если вставить в батник, запускать через запуск программы и обрамить команду кавычками:
Код:
Развернуть Свернуть Копировать
start "" "for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1""
Отдает ошибку о неправильном имени.

Подскажите, что делаю не так?
 
Если вставить в батник, запускать через запуск программы
в bat файле должен быть код
C#:
Развернуть Свернуть Копировать
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"

без всяких стартов для вызова обработчика.

В зенопостере - запускаем bat файл, допустим название clear.bat, ничего лишнего там быть не должно
 
в bat файле должен быть код
C#:
Развернуть Свернуть Копировать
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"

без всяких стартов для вызова обработчика.

В зенопостере - запускаем bat файл, допустим название clear.bat, ничего лишнего там быть не должно
к сожалению так тоже отрабатывает с ошибкой:
 
к сожалению так тоже отрабатывает с ошибкой:
попробуйте не ждать завершения работы поставить и проверьте запуск напрямую двойным кликом по файлу, еще предположение, не хватает прав
 
к сожалению так тоже отрабатывает с ошибкой:

попробуйте так

C#:
Развернуть Свернуть Копировать
Process process = new Process();
process.StartInfo.FileName = "cmd";
process.StartInfo.Arguments = "/c for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"";
process.StartInfo.Verb = "runas"; // запуск с правами администратора
process.StartInfo.CreateNoWindow = false;// поменять на true если не хотите видеть окно консоли
process.Start();     
process.WaitForExit();

добавить

 
Последнее редактирование:
попробуйте так

C#:
Развернуть Свернуть Копировать
Process process = new Process();
process.StartInfo.FileName = "cmd";
process.StartInfo.Arguments = "/c for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"";
process.StartInfo.Verb = "runas"; // запуск с правами администратора
process.StartInfo.CreateNoWindow = false;// поменять на true если не хотите видеть окно консоли
process.Start();   
process.WaitForExit();

добавить

благодарю, так отлично все отрабатывает!

только не забываем прописать в директивах Using:
using System.Diagnostics;

и единственное, если process.StartInfo.CreateNoWindow поставить в true - окно все равно не пропадает
 
и единственное, если process.StartInfo.CreateNoWindow поставить в true - окно все равно не пропадает

так не будет показывать окно консоли

C#:
Развернуть Свернуть Копировать
Process process = new Process();
process.StartInfo.FileName = "cmd";
process.StartInfo.Arguments = "/c for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"";
process.StartInfo.Verb = "runas"; // запуск с правами администратора
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;// поменять на true если не хотите видеть окно консоли
process.Start();   
process.WaitForExit();
 
так не будет показывать окно консоли

C#:
Развернуть Свернуть Копировать
Process process = new Process();
process.StartInfo.FileName = "cmd";
process.StartInfo.Arguments = "/c for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"";
process.StartInfo.Verb = "runas"; // запуск с правами администратора
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;// поменять на true если не хотите видеть окно консоли
process.Start();  
process.WaitForExit();
Приветствую. Кто подскажет как запустить без прав администратора. С обычными правами пользователя.
 
C#:
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Verb = "runas";
        cmd.StartInfo.Arguments = @"/c netstat < txt.txt";
        cmd.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
        cmd.Start();
        cmd.WaitForExit();
Подскажите пожалуйста по управлению CMD из программного кода .Мне нужно узнать занятые порты и записать их в файл команда для CMD
корректная ,но файл пуст как бы не эксперементриовал например :
Например:
Развернуть Свернуть Копировать
    System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Verb = "runas";
        cmd.StartInfo.UseShellExecute = false;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.Arguments = @"/c netstat -a";
        cmd.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
        cmd.Start();
        string output = cmd.StandardOutput.ReadToEnd() ;
        cmd.WaitForExit();
И все равно пусто. В чем может быть дело?
 
Последнее редактирование:
C#:
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Verb = "runas";
        cmd.StartInfo.Arguments = @"/c netstat < txt.txt";
        cmd.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
        cmd.Start();
        cmd.WaitForExit();
Подскажите пожалуйста по управлению CMD из программного кода .Мне нужно узнать занятые порты и записать их в файл команда для CMD корректная ,но файл пуст как бы не эксперементриовал например :
Например:
Развернуть Свернуть Копировать
    System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Verb = "runas";
        cmd.StartInfo.UseShellExecute = false;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.Arguments = @"/c netstat -a";
        cmd.StartInfo.StandardOutputEncoding = Encoding.GetEncoding(866);
        cmd.Start();
        string output = cmd.StandardOutput.ReadToEnd() ;
        cmd.WaitForExit();
И все равно пусто. В чем может быть дело?
что такое /c ?
 
C#:
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Arguments = @"/c netstat -a >txt.txt";
        cmd.Start();
        cmd.WaitForExit();
Если кому пригодиться то так получилось записать
 
C#:
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Arguments = @"/c netstat -a >txt.txt";
        cmd.Start();
        cmd.WaitForExit();
Если кому пригодиться то так получилось записать
Единственное дирректорию не получается назначить , интерполяцию строк не видит
 
  • Спасибо
Реакции: Azakim
Кому то может пригодится кубик С# для записи в файл из CMD/+3 часа к личной жизни ,столько я потратил на поиск этого решения(facepalm):
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        //project.Directory не работает
        cmd.StartInfo.WorkingDirectory = @"C:\Users\Professional\Desktop\Project\";
        cmd.StartInfo.FileName = "cmd.exe";
        //Если не прописать рабочую директорию бесполезно вставлять путь в writline для cmd
        cmd.StartInfo.Arguments = @"/c ваша команда -a>файл.txt";
        //если не задать false для UseShellExecute c CreateNoWindow в положении true ,то будет появляться окно консоли
        cmd.StartInfo.UseShellExecute = false;
        cmd.StartInfo.CreateNoWindow = true;
        cmd.Start();
        cmd.WaitForExit();
 
  • Спасибо
Реакции: ильяsffse и major555
Последнее редактирование:
  • Спасибо
Реакции: Azakim
Ребята, а никто не сталкивался с проблемой. В Project Maker всё норм отрабатывает. В постере же ошибок нет, но и результата тоже нет.

Проблема решилась запуском Постера от Администратора.
 
Последнее редактирование:
Кому то может пригодится кубик С# для записи в файл из CMD/+3 часа к личной жизни ,столько я потратил на поиск этого решения(facepalm):
Развернуть Свернуть Копировать
        System.Diagnostics.Process cmd = new System.Diagnostics.Process();
        //project.Directory не работает
        cmd.StartInfo.WorkingDirectory = @"C:\Users\Professional\Desktop\Project\";
        cmd.StartInfo.FileName = "cmd.exe";
        //Если не прописать рабочую директорию бесполезно вставлять путь в writline для cmd
        cmd.StartInfo.Arguments = @"/c ваша команда -a>файл.txt";
        //если не задать false для UseShellExecute c CreateNoWindow в положении true ,то будет появляться окно консоли
        cmd.StartInfo.UseShellExecute = false;
        cmd.StartInfo.CreateNoWindow = true;
        cmd.Start();
        cmd.WaitForExit();

Доброго времени суток. Спасибо, ваш код работает у меня на тестовых простых задачах, но почему-то тот запрос что мне надо выполнить код выполняет, но в файл записывается пустота. Можете подсказать как правильно сделать?
вот сам запрос для командной строки

curl -X POST 'http://127.0.0.1/api/v1' -H 'Content-Type: application/json' --data @c:\body.txt

это к api амс если что.

Если ввожу вручную запрос в командной строке , то все выполняется, через код тоже выполняется, но результат не пишется в файл
 
Доброго времени суток. Спасибо, ваш код работает у меня на тестовых простых задачах, но почему-то тот запрос что мне надо выполнить код выполняет, но в файл записывается пустота. Можете подсказать как правильно сделать?
вот сам запрос для командной строки

curl -X POST 'http://127.0.0.1/api/v1' -H 'Content-Type: application/json' --data @c:\body.txt

это к api амс если что.

Если ввожу вручную запрос в командной строке , то все выполняется, через код тоже выполняется, но результат не пишется в файл
Здравствуйте! Первое что проверьте это правильные ли параметры в боди.тхт передаете. Ну а второе ,чтобы записать вывод команды curl в файл в Windows через командную строку или скрипт, обычно используется перенаправление вывода с помощью символа >:

Код:
Развернуть Свернуть Копировать
curl -X POST 'http://127.0.0.1/api/v1' -H 'Content-Type: application/json' --data @c:\body.txt > c:\output.txt
 
  • Спасибо
Реакции: major555
Здравствуйте! Первое что проверьте это правильные ли параметры в боди.тхт передаете. Ну а второе ,чтобы записать вывод команды curl в файл в Windows через командную строку или скрипт, обычно используется перенаправление вывода с помощью символа >:

Код:
Развернуть Свернуть Копировать
curl -X POST 'http://127.0.0.1/api/v1' -H 'Content-Type: application/json' --data @c:\body.txt > c:\output.txt

Спасибо большое, получилось. А где вы берете информацию по правилам составления таких запросов?)
 
  • Спасибо
Реакции: Azakim
  • Спасибо
Реакции: major555
Здравствуйте как в zennо запустить cmd чтобы в командной строке можно было прописать значение из переменной, чтобы не создавать много батников?
C#:
Развернуть Свернуть Копировать
string strCmdText = "";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
 
  • Спасибо
Реакции: major555

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)