1

Тема: AHK: Run cmd с параметрами.

Всем добра!
Довольно банально, но решения не могу найти.

В системе установлен NodeJS и чтобы запустить модуль установленный из NPM, нужно запустить терминал(он же cmd.exe) и выполнить команду состоящую из имени модуля без абсолютного пути и расширения и желаемого набора параметров:

...>modulename --param1 --param2 --param3

Работает как и заявлено, но как совершить такой Run, с помощью AHK?

2 (изменено: teadrinker, 2019-01-31 16:32:37)

Re: AHK: Run cmd с параметрами.

Скорее всего так:

moduleFolder := "D:\OneDrive\Electron Projects\QuickStart"  ; папка, где расположен модуль
moduleWithParams := "modulename --param1 --param2 --param3"
SetWorkingDir, %moduleFolder%
Run, % "cmd /c npm " . moduleWithParams,, Hide

Сначала можно без "Hide" запустить, чтобы убедиться, что всё работает правильно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Run cmd с параметрами.

Благодарю!
Всё так, только без "npm" в строке для Run.

4

Re: AHK: Run cmd с параметрами.

Ещё раз: зачем лишний раз дёргать CMD /C?

5

Re: AHK: Run cmd с параметрами.

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

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

6

Re: AHK: Run cmd с параметрами.

CMD.EXE предназначен для запуска собственных внутренних команд (например, DIR) и внешних приложений, а также организации взаимодействия между ними (например, перенаправления ввода-вывода). Модуль NodeJS внутренней командой CMD.EXE не является, ввод-вывод никуда не перенаправляется, результаты работы от глаз пользователя скрываются, команда Run языка AutoHotkey также является средством запуска внешних приложений, — использовать CMD.EXE в данном случае — то же самое, что бить молотком не по гвоздю, а по второму молотку приставленному к гвоздю.

Всё так, только без "npm" в строке для Run.

И без «cmd /c»:

Run, % moduleWithParams,, Hide

7 (изменено: stealzy, 2019-02-02 04:53:40)

Re: AHK: Run cmd с параметрами.

KusochekDobra пишет:

решения не могу найти.

Как у вас это получается? В справке полное описание команды и куча примеров, из которых два с параметрами. Или вы предпочитаете google? Тем более...

8

Re: AHK: Run cmd с параметрами.

Ещё немного для полноты картины.

нужно запустить терминал(он же cmd.exe) и выполнить команду состоящую из имени модуля без абсолютного пути и расширения и желаемого набора параметров

1) не нужно, а можно — проверить сейчас не на чем, но наверняка можно и с абсолютным и с относительным путём и не из текущего каталога и указав расширение…
2) не обязательно CMD.EXE — есть замены и Unix-подобные (для Windows) и TCC.EXE (Take Command Console)…

SetWorkingDir, %moduleFolder%

— можно и без SetWorkingDir, указав %moduleFolder% в качестве 2-го аргумента команды Run.

9

Re: AHK: Run cmd с параметрами.

KusochekDobra пишет:

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

wisgest, коллега, не совсем понимаю суть ваших возражений против использования cmd.exe в данном случае.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10 (изменено: wisgest, 2019-02-02 11:08:59)

Re: AHK: Run cmd с параметрами.

речь о модуле, запуск которого подразумевает использование консоли.

Если вот такое

...>modulename --param1 --param2 --param3

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

modulename --param1 --param2 --param3

следует за приглашением «...>»

В ней потом отображается Debug-лог его работы.

Для того, чтобы это было правдой: 1) не должно быть Hide, 2) должен быть ключ /K, а не /C (т.е. без последующего завершения).

11

Re: AHK: Run cmd с параметрами.

wisgest пишет:

Для того, чтобы это было правдой: 1) не должно быть Hide, 2) должен быть ключ /K, а не /C (т.е. без последующего завершения).

Так это всё я вначале предложил, думая, что нужно что-то именно через npm запустить. Дело в том, что вот так у меня работает запуск Electron:

moduleFolder := "D:\OneDrive\Electron Projects\QuickStart"
SetWorkingDir % moduleFolder
Run, cmd /c npm start

А вот так нет:

moduleFolder := "D:\OneDrive\Electron Projects\QuickStart"
SetWorkingDir % moduleFolder
Run, npm start
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Run cmd с параметрами.

stealzy пишет:

Как у вас это получается?

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

wisgest, Вы же не знаете наверняка о предмете дискуссии, а то, что подразумевает Ваш личный опыт, вряд ли охватывает всё и сразу. Если так, то всегда есть место сомнениям, следуя за которыми, вопросы пытаются заполнить пустоту неизвестного, а не поднять в ней пыль.

Коллеги, для чистоты эксперимента, установите из npm этот модуль и попытайтесь воспроизвести весь свой опыт связанный с командой Run в AHK, чтобы запустить его со стандартными параметрами адреса = 127.0.0.1 и портом = 4723, так, чтобы лог работы модуля транслировался в консоль. Особо сильно желающие обойтись при этом без "CMD" - ваш опыт, будет наиболее ценен в продолжении этой темы.

У меня получилось только способом, предложенным во втором сообщении этой беседы.

cmd без параметра "/c" или "/k" - не работает и первый ответственен лишь за то, что после остановки сервера, окно консоли закрывается, что в принципе и нужно в большей степени, чем второе.

13 (изменено: stealzy, 2019-02-02 15:35:57)

Re: AHK: Run cmd с параметрами.

KusochekDobra пишет:

никогда не сталкивался с запуском довольно специфичных компонентов другой среды

Все таки докопаюсь .
Что именно там специфичного? Запуск команды с параметром?

KusochekDobra пишет:

так, чтобы лог работы модуля транслировался в консоль.

А вот это уже существенное уточнение. То есть перед запуском модуля у вас уже открыто окно консоли, и вы хотите чтобы AHK выполняя команду, переводил вывод в уже открытое окно?

14

Re: AHK: Run cmd с параметрами.

Чтобы было точно понятно, что я ожидал, нужно не представлять себе какие-либо возможные варианты того, как это ещё могло бы происходить, а понять, что требуется. Чтобы достичь в этом полной однозначности, прочитайте пожалуйста ещё раз первое сообщение этой беседы, перейдите по ссылке в моём предыдущем сообщении и в параграфе "Get started" найдите ссылку, ведущую на гайд по сему процессу. Там будет так же описан пример как запустить этот модуль. Всё, что мне по сути требовалось - воспроизвести этот процесс из сценария, о чём и повествует сообщение на старте.

15

Re: AHK: Run cmd с параметрами.

stealzy пишет:

Как у вас это получается? В справке полное описание команды и куча примеров, из которых два с параметрами. Или вы предпочитаете google? Тем более...

Наверное, так же как и у вас, например тут:
http://forum.script-coding.com/viewtopic.php?id=9524

16 (изменено: stealzy, 2019-02-03 12:49:27)

Re: AHK: Run cmd с параметрами.

Malcev, так и ачивки разработчика у меня не было. Хотите запретить мне троллить на форуме ?
Если бы мне тогда указали на справку, я бы даже спасибо сказал.

17

Re: AHK: Run cmd с параметрами.

stealzy пишет:

Malcev, так и ачивки разработчика у меня не было. Хотите запретить мне троллить на форуме ?

Статус Разработчик - не определяет уровень знаний, так же, как: "Не место красит человека..." Не уместно вовлекать в определения, значения понятий, только по признаку того, как они могут звучать. Это превращает Ваш троллинг в попытку пощекотать взрослого дядю руками младенца - слишком неумело для того, как, звучит Ваш статус.

stealzy пишет:

Если бы мне тогда указали на справку, я бы даже спасибо сказал.

А я благодарен за то, что в том, что оказалось границей для меня, кто-то не узрил барьеров для себя.

18

Re: AHK: Run cmd с параметрами.

Не воспринимайте так близко к сердцу, просто любопытно было узнать про особенности "довольно специфичных компонентов другой среды".