Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Выполнение BAT-скриптов без вызова окна консоли

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выполнение BAT-скриптов без вызова окна консоли


 
Те, кто использует BAT-скрипты рано или поздно сталкиваются с потребностью спрятать окно консоли при их исполнении. Это происходит тогда, когда в выводимой в это окно информации нет потребности и оно только загромождает экран. Как сделать отключение окна консоли и сохранить полную функциональность исполняемого скрипта?

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 11:44 02-09-2019 | Исправлено: senderman, 13:03 15-03-2020
shadow_member



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cmdow.exe, RunHiddenConsole.exe, HideConsole.exe, hidec.exe, hidcon.exe, .vbs вместо .bat, Зачетная программа!

Всего записей: 21460 | Зарегистр. 18-07-2006 | Отправлено: 12:36 02-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shadow_member
 
Нужно, чтобы программа скрытия по собственному имени искала исполняемый скрипт. Проверил все. Они этого не умеют.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 10:33 06-09-2019 | Исправлено: senderman, 10:35 06-09-2019
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В Autohotkey пишешь скрипт со строками вида

Код:
RunWait <Путь к батнику>,, Hide

Подробности здесь

Всего записей: 855 | Зарегистр. 10-12-2007 | Отправлено: 11:00 06-09-2019 | Исправлено: Krot66, 12:13 06-09-2019
inile

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
proxy.exe кинуть рядом с батником и переименовать в имя_батника.exe
Запускать его.

Всего записей: 1814 | Зарегистр. 29-06-2011 | Отправлено: 15:05 06-09-2019
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще можно скомпилировать вот этим

Всего записей: 855 | Зарегистр. 10-12-2007 | Отправлено: 19:31 06-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inile
 
proxy.exe
 
Написана на C++, работает с файлами name.bat и имеет цифровую подпись!
 
Переименованием файла proxy.exe в name.exe можно выбрать имя запускаемого скрипта. Я уже было начал писать программу самостоятельно, но это готовое решение делает то, что мне надо.  
 
Наличие цифровой подписи у такого крошечного изделия меня приятно удивило.
 
 
Krot66
 
Продукт от Bat To Exe Converter создает файл CMD в папке temp и не может его исполнить даже с коротким текстом @echo off:
 
B:\>B:\run.exe
Ошибка в формате параметра -
"X:\Documents" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 
А как у Вас?
 
Хочется задействовать этот вариант, но, возможно, я что-то делаю неправильно.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 11:20 07-09-2019 | Исправлено: senderman, 11:28 07-09-2019
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
senderman
Я мало пользовался таким способом - в простых вариантах, вроде создания подставного файла несиситемной утилиты это работает. Вариант с ahk прост и удобен, если надо запускать много кряду или по горячей клавише  

Всего записей: 855 | Зарегистр. 10-12-2007 | Отправлено: 11:38 07-09-2019
wvxwxvw

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
senderman

Код:
B:\>B:\run.exe  

И что, по вашему, эта конструкция должна сделать? Найти на диске B диск B?

Всего записей: 5677 | Зарегистр. 02-04-2015 | Отправлено: 12:21 07-09-2019 | Исправлено: wvxwxvw, 12:22 07-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wvxwxvw

Цитата:
И что, по вашему, эта конструкция должна сделать? Найти на диске B диск B?

Это не по вашему, а по Microsoft, когда адрес исполняемого файла вводится при помощи перетаскивания файла в окно консоли. Можете убедиться в этом собственноручно.
Эта конструкция запускает файл run.exe на исполнение.
 
А это результат исполнения:
 
Ошибка в формате параметра -
"X:\Documents" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.  
 
Прокоментировать можете?

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 13:39 07-09-2019 | Исправлено: senderman, 13:51 07-09-2019
wvxwxvw

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
senderman
Это так не работает. Bat To Exe Converter обрабатывает команды, а не то что перетащилось в ком.строку.
 
В любом случае, наилучшие варианты вам выше предложили. Только вот, то что вы командой считаете, в них тоже работать наверное не будет.
 
Добавлено:
senderman
Я не буду это комментировать. Потрудитесь, хотя бы минимально, прочесть пару страниц про синтаксис bat-файлов.

Всего записей: 5677 | Зарегистр. 02-04-2015 | Отправлено: 14:22 07-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wvxwxvw

Цитата:
Я не буду это комментировать.

Тогда прокоментирую я. Перетащилось то, что надо. И это работает именно так. Перетащился для исполнения, чтобы увидеть рапорт исполнения, исполнимый файл созданный Bat To Exe Converter. Этот файл конвертер создает по ошибочной технологии и поэтому первый же пробел в адресе приводит к ошибке исполнения скрипта распакованного в папку temp. Возможно в Bat To Exe Converter есть переключатель, который адрес облачит кавычками и пробелы не будут приводить к ошибке.
( Точно также перетаскиваемый файл proxy.exe исполняется без возникновения ошибки. )
 
Krot66
 
Не спорю, что вариант с ahk - хороший вариант, но я хочу компактного самостоятельного решения. Реализовать такое решение позволяет использование файла proxy.exe. Попробовал. Очень понравилось. Одна загвоздка - он, как на выполняемую им задачу, длинноват. А значит может содержать код исполняющий и другие недокументированные задачи.
 
А для интереса буду трясти Bat To Exe Converter. И искать способ устранения ошибки.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 14:38 07-09-2019 | Исправлено: senderman, 15:03 07-09-2019
iglezz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
senderman
А разве Bat To Exe Converter не
Цитата:
может содержать код исполняющий и другие недокументированные задачи
???
 
В копилку к предложенным решениям - вариант с использованием nsis (исходник и готовый exe).

Всего записей: 1391 | Зарегистр. 18-02-2003 | Отправлено: 16:19 07-09-2019 | Исправлено: iglezz, 02:54 10-09-2019
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А если в свойствах ярлыка поставить в свёрнутом виде?

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 16:53 07-09-2019
LonerD



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ConX
https://usbtor.ru/viewtopic.php?t=1368

Всего записей: 539 | Зарегистр. 27-06-2006 | Отправлено: 18:38 07-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выяснил:
 
"Bat To Exe Converter" начинает корректно работать со скриптами, определяющими свое местоположение, с весии 2.1.5
 
"Advanced Bat To Exe Converter" никакую версию корректно работать заставить не получилось.
 
Krot66
 
Вариант с конвертером "Bat To Exe Converter v2.1.5 - v3.2" работает не хуже варианта с "proxy.exe" и может применяться со сложными скриптами. Не путать с "Advanced Bat To Exe Converter" !
 
 
Добавлено:
iglezz
 
Естественно, может. Любая программа может грешить побочными возможностями. Вариант с открытым кодом надежнее. Но большинство программ открытого кода не имеют.
Опишите подробнее методику использования варианта с использованием nsis или дайте ссылку на описание.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 18:53 07-09-2019 | Исправлено: senderman, 11:17 09-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99

Цитата:
А если в свойствах ярлыка поставить в свёрнутом виде?

Этот способ и использование CMDOW и его аналога ConX - это полумеры. Окно консоли при этом выводится полнофункциональным и только после вывода сворачивается или гасится. То есть, пусть и непродолжительно, окно возникает на экране. Этого эффекта при использовании "proxy.exe" или "Bat To Exe Converter" нет. Окно консоли не возникает вовсе.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 11:33 08-09-2019 | Исправлено: senderman, 11:34 08-09-2019
senderman

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Особого внимания заслуживает оригинальное решение, выполненное на базе установщика программ NSIS, предложенное iglezz. Оно использует способность установщика программироваться и запускать исполняемые файлы. Установщик в директории, где исполняется сам, ищет по имени, присвоенному ему, файл с расширением BAT или CMD и исполняет его. Собственные окна установщика и окно консоли при этом не появляются. При наличии командной строки она передается исполняемому файлу. Так как установщик NSIS компактный, конкретная реализация скрытия окна консоли также получилась достаточно компактной.

Всего записей: 1488 | Зарегистр. 16-03-2019 | Отправлено: 00:52 14-09-2019 | Исправлено: senderman, 12:44 15-03-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть такой, где первым аргументом исполняемый файл, а вторым аргумент: RunHide.vbs
Но запуск PowerShell с аргументами не срабатывает, поэтому есть вариант, который, для каждого сценария надо свой: RunHidePowerSheellScript.vbs
Он принимает один аргумент, который будет подставлен в конец цепочки, на место file: prog & args & file
 
Есть и на C# StartHidden.cs

Всего записей: 2956 | Зарегистр. 16-08-2012 | Отправлено: 23:21 21-09-2019
VV2006

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Этот файл конвертер создает по ошибочной технологии и поэтому первый же пробел в адресе приводит к ошибке исполнения скрипта

senderman, а путь, содержащий пробелы, заключался в кавычки?  

Всего записей: 2064 | Зарегистр. 10-02-2006 | Отправлено: 11:30 22-09-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Программы » Выполнение BAT-скриптов без вызова окна консоли


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru