Показать полную графическую версию : [решено] Одновременный запуск файлов .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
запускайте с опцией $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
В итоге вывода естественно нет, перенаправление в файл так же почему то не срабатывало.
В идеале хочу чтобы параллельно запускаю батник и я смог получить каким то способом вывод, в данном примере все проскакивает и вывода нет.
Или хотя бы чтобы окна консоли не закрывались и можно было посмотреть вывод
В итоге вывода естественно нет »
Вывод есть.
перенаправление в файл так же почему то не срабатывало. »
Покажите код с перенаправлением вывода в файл.
чтобы параллельно запускаю батник »
Всё ещё непонятно.
и я смог получить каким то способом вывод »
Куда получить? В скрипт?
в данном примере все проскакивает и вывода нет. »
Ещё раз: вывод есть.
Или хотя бы чтобы окна консоли не закрывались и можно было посмотреть вывод »
Используйте параметр «/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)
Спасибо
В догонку:
я останавливал закрытие батника командой pause, но можно и ключ \k использовать
и параметр $RUN_CREATE_NEW_CONSOLE помогли. »
Этот параметр не нужен.
andr_mozg
20-10-2016, 12:12
Iska, как не странно но с этим параметром и без него, два разных результата на выходе
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.