Войти

Показать полную графическую версию : [решено] Одновременный запуск файлов .cmd с параметрами с отображением консолей.


andr_mozg
17-10-2016, 16:04
ПРивет.

Беда такая, есть сторонний исполняемый файл xxx.cmd

использую стандартный механизм

RUN('"' & @ComSpec & '" /c ' & $value,"",@SW_MINIMIZE,6)


Все бы хорошо, но есть пару НО.
- не хочет запускать параллельно процессы CMD
- если использую стандартные CMD команды то вывод в консоль дает, если CMD файл то соответственно нет
- не отображает работающие консоли

и так и этак бился, но кроме варианта генерить батники и запускать нечего умного в голову не пришло.
может быть есть более гуманный вариант ?

Спасибо

P.S. Реализовал бы все чисто на батниках но к сожалению параметры надо дергать из файла, и батник будит уж больно хитрый.

andr_mozg
17-10-2016, 18:05
То есть, хочу добится эффекта , как от двух батников один передает в другой параметры при чтении из файла, создает на выходе кучу окон cmd

Iska
17-10-2016, 18:31
Ничего не понятно.

Mike909
17-10-2016, 19:00
запускайте с опцией $RUN_CREATE_NEW_CONSOLE (0x10000)


#include <Constants.au3>

Local $sCommand = "ping 8.8.8.8"
Run('"' & @ComSpec & '" /c ' & $sCommand, "", @SW_MINIMIZE , $RUN_CREATE_NEW_CONSOLE)
Run('"' & @ComSpec & '" /c ' & $sCommand, "", @SW_MINIMIZE , $RUN_CREATE_NEW_CONSOLE)

andr_mozg
18-10-2016, 12:10
рассказываю более детально.

пример
файл 1.bat в файле всего одна команда Dir

запускаю файл




For $i = 1 to 5
Run('"' & @ComSpec & '" /c ' & "1.bat",@ScriptDir, @SW_MINIMIZE , $RUN_CREATE_NEW_CONSOLE)
Next



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

В идеале хочу чтобы параллельно запускаю батник и я смог получить каким то способом вывод, в данном примере все проскакивает и вывода нет.

Или хотя бы чтобы окна консоли не закрывались и можно было посмотреть вывод

Iska
18-10-2016, 12:25
В итоге вывода естественно нет »
Вывод есть.

перенаправление в файл так же почему то не срабатывало. »
Покажите код с перенаправлением вывода в файл.

чтобы параллельно запускаю батник »
Всё ещё непонятно.

и я смог получить каким то способом вывод »
Куда получить? В скрипт?

в данном примере все проскакивает и вывода нет. »
Ещё раз: вывод есть.

Или хотя бы чтобы окна консоли не закрывались и можно было посмотреть вывод »
Используйте параметр «/k» вместо «/c». Тогда командный процессор не будет завершать свою работу после исполнения переданной ему командной строки (в данном случае — пакетного файла). $RUN_CREATE_NEW_CONSOLE — ни к чему.

andr_mozg
18-10-2016, 12:46
Всем спасибо, именно ключь /K и параметр $RUN_CREATE_NEW_CONSOLE помогли.

ИТого

Run('"' & @ComSpec & '" /k ' & "1.bat",@ScriptDir, @SW_MINIMIZE , $RUN_CREATE_NEW_CONSOLE)

Спасибо

Mike909
18-10-2016, 13:08
В догонку:
я останавливал закрытие батника командой pause, но можно и ключ \k использовать

Iska
18-10-2016, 13:27
и параметр $RUN_CREATE_NEW_CONSOLE помогли. »
Этот параметр не нужен.

andr_mozg
20-10-2016, 12:12
Iska, как не странно но с этим параметром и без него, два разных результата на выходе




© OSzone.net 2001-2012