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

usual1suspect2

Новичок
Регистрация
25.03.2019
Сообщения
5
Благодарностей
0
Баллы
1
вы сам батник заполните нужными данными. дополнительные параметры не в постере должны быть в этом случае. а все должно писаться внутри батника
А если мне нужно через командную строку запустить скрипт , который принимает 2 параметра, первый известный, но второй будет каждый раз меняться, как ответ на первый введенный? Первый - номер телефона, второй - код подтверждения, который придет только после запуска скрипта ...
 

usual1suspect2

Новичок
Регистрация
25.03.2019
Сообщения
5
Благодарностей
0
Баллы
1
Кроме как эмулировать ввод с клавиатуры ничего не приходит на ум ...
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 371
Баллы
113
А если мне нужно через командную строку запустить скрипт , который принимает 2 параметра, первый известный, но второй будет каждый раз меняться, как ответ на первый введенный? Первый - номер телефона, второй - код подтверждения, который придет только после запуска скрипта ...
Использовать экшен - "Запуск программы".
 

usual1suspect2

Новичок
Регистрация
25.03.2019
Сообщения
5
Благодарностей
0
Баллы
1

usual1suspect2

Новичок
Регистрация
25.03.2019
Сообщения
5
Благодарностей
0
Баллы
1

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
Есть команда которая очищает все логи на 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""
Отдает ошибку о неправильном имени.

Подскажите, что делаю не так?
 

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Если вставить в батник, запускать через запуск программы
в bat файле должен быть код
C#:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
без всяких стартов для вызова обработчика.

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

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
в bat файле должен быть код
C#:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
без всяких стартов для вызова обработчика.

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

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
к сожалению так тоже отрабатывает с ошибкой:
попробуйте не ждать завершения работы поставить и проверьте запуск напрямую двойным кликом по файлу, еще предположение, не хватает прав
 

Colter

Новичок
Регистрация
14.12.2019
Сообщения
16
Благодарностей
20
Баллы
3
к сожалению так тоже отрабатывает с ошибкой:
попробуйте так

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();
добавить

 
Последнее редактирование:

arthyrgrex

Client
Регистрация
12.05.2013
Сообщения
104
Благодарностей
31
Баллы
28
попробуйте так

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 - окно все равно не пропадает
 

Colter

Новичок
Регистрация
14.12.2019
Сообщения
16
Благодарностей
20
Баллы
3
и единственное, если 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();
 

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
так не будет показывать окно консоли

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();
Приветствую. Кто подскажет как запустить без прав администратора. С обычными правами пользователя.
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
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();
И все равно пусто. В чем может быть дело?
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
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 ?
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
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

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
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();
Если кому пригодиться то так получилось записать
Единственное дирректорию не получается назначить , интерполяцию строк не видит
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 436
Благодарностей
9 132
Баллы
113
  • Спасибо
Реакции: Azakim

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
Кому то может пригодится кубик С# для записи в файл из 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

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
Последнее редактирование:
  • Спасибо
Реакции: Azakim

seodima

Client
Регистрация
21.09.2014
Сообщения
199
Благодарностей
60
Баллы
28
Ребята, а никто не сталкивался с проблемой. В Project Maker всё норм отрабатывает. В постере же ошибок нет, но и результата тоже нет.

Проблема решилась запуском Постера от Администратора.
 
Последнее редактирование:

major555

Client
Регистрация
27.09.2014
Сообщения
62
Благодарностей
6
Баллы
8
Кому то может пригодится кубик С# для записи в файл из 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 амс если что.

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

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
Доброго времени суток. Спасибо, ваш код работает у меня на тестовых простых задачах, но почему-то тот запрос что мне надо выполнить код выполняет, но в файл записывается пустота. Можете подсказать как правильно сделать?
вот сам запрос для командной строки

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

major555

Client
Регистрация
27.09.2014
Сообщения
62
Благодарностей
6
Баллы
8
Здравствуйте! Первое что проверьте это правильные ли параметры в боди.тхт передаете. Ну а второе ,чтобы записать вывод команды 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

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
  • Спасибо
Реакции: major555

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 267
Благодарностей
687
Баллы
113
Здравствуйте как в zennо запустить cmd чтобы в командной строке можно было прописать значение из переменной, чтобы не создавать много батников?
C#:
string strCmdText = "";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
 
  • Спасибо
Реакции: major555

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