1 (изменено: Vicoriyan, 2018-03-17 18:37:28)

Тема: AHK: Командная строка. Запуск команды без использования файла bat

Доброго времени суток. Во время работы скрипта я запускаю команду с файла "test.bat". Возможно ли в AHK запустить команду без использования внешнего файла? Чтоб эта команда была прописана в самом скрипте. Искал на форуме, так и не нашел.

2

Re: AHK: Командная строка. Запуск команды без использования файла bat

В AHK есть команда Run.

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

3 (изменено: svoboden, 2018-03-17 18:52:35)

Re: AHK: Командная строка. Запуск команды без использования файла bat

Так в предыдущей теме был ответ, как пример:
http://forum.script-coding.com/viewtopic.php?id=13516.

4 (изменено: Vicoriyan, 2018-03-17 18:53:49)

Re: AHK: Командная строка. Запуск команды без использования файла bat

я знаю, что есть команда run.
Я знаю код, когда можно запустить файл так:

Run, C:\test.bat

Но как избавится от файла?

5

Re: AHK: Командная строка. Запуск команды без использования файла bat

Зависит от того, что у вас в bat.

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

6

Re: AHK: Командная строка. Запуск команды без использования файла bat

Мне нужно запустить вот эту команду:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

7 (изменено: svoboden, 2018-03-17 19:13:06)

Re: AHK: Командная строка. Запуск команды без использования файла bat

teadrinker, думаю, без разницы, что там содержится в файле. Ведь текст из файла перенаправляется в консоль, а консоль выполняет команду.
Vicoriyan, что непонятного? Вместо вашего файла запускаете текст из bat файла командой Run.

8

Re: AHK: Командная строка. Запуск команды без использования файла bat

svoboden как? Я так примера и не нашел.

9

Re: AHK: Командная строка. Запуск команды без использования файла bat

svoboden пишет:

teadrinker, думаю, без разницы, что там содержится в файле. Ведь текст из файла перенаправляется в консоль, а консоль выполняет команду.

Разница есть. Во-первых, не всегда нужно вызывать саму консоль, во-вторых, если передавать текст, как есть, это вызовет синтаксические ошибки в AHK.
Vicoriyan, такие сложносочинённые команды, скорее всего, не всегда можно в синтаксис AHK перевести. Попробуйте так:

Run cmd /c for /f "skip=1 tokens=3" `%`%s in ('query user `%USERNAME`%') do ( `%windir`%\System32\tscon.exe `%`%s /dest:console ),, Hide

Сам проверить не могу, у меня нет tscon.exe.

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

10

Re: AHK: Командная строка. Запуск команды без использования файла bat

teadrinker команда не выполняется и ошибок нет.

11

Re: AHK: Командная строка. Запуск команды без использования файла bat

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

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

12

Re: AHK: Командная строка. Запуск команды без использования файла bat

Вообще-то при попытке запустить ваш код из bat у меня мелькает консольное окно с сообщением об ошибке в синтаксисе:

https://i.imgur.com/2G5br5E.png

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

13

Re: AHK: Командная строка. Запуск команды без использования файла bat

этот код нужно запускать только при активной сессии удаленного рабочего стола.

14 (изменено: svoboden, 2018-03-18 00:17:45)

Re: AHK: Командная строка. Запуск команды без использования файла bat

teadrinker пишет:

такие сложносочинённые команды, скорее всего, не всегда можно в синтаксис AHK перевести.

Почему, у меня получилось. Вот исходный bat:


@echo Off
Cls
Echo Hello World!
Pause

запускаем ahk:

Run, cmd /k @echo Off & Echo Hello World! & Pause & Cls

все работает.

Насчет вопроса тс, исходя из примера выше, попробуйте свой код переделать похожим образом. Или вот вариант есть: https://autohotkey.com/boards/viewtopic … ext+to+cmd.

15

Re: AHK: Командная строка. Запуск команды без использования файла bat

svoboden Попробовал и ничего не вышло( Командная строка запускается, но сама команда не выполняется.

16

Re: AHK: Командная строка. Запуск команды без использования файла bat

teadrinker пишет:

Vicoriyan, такие сложносочинённые команды, скорее всего, не всегда можно в синтаксис AHK перевести

Тут наверное надо переводить не bat в ahk, а bat в cmd prompt.
Попробуйте так:

Run cmd /c for /f "skip=1 tokens=3" `%s in ('query user `%USERNAME`%') do ( `%windir`%\System32\tscon.exe `%s /dest:console ),, Hide

17

Re: AHK: Командная строка. Запуск команды без использования файла bat

Заработало так:

Run cmd /c for /f "skip=1 tokens=3" `%s in ('query user `%USERNAME`%') do ( `%windir`%\System32\tscon.exe `%s /dest:console )

Без ,, Hide