![]() |
как запускать cmd, чтобы командной строки не было? (не echo off)
cmd-шник на удаление всех файлов с опр. папки? |
7human7, используя hidcon.exe - так hidcon.exe mybat.bat.
Либо cmdow.exe - его вызов вставляется в батник, а батник обычным способо запускается. |
|
Цитата:
кстати, после того как задействовал cmd командой hidcon, в диспетчере появилось вот что: ![]() |
|
Цитата:
|
Поскольку я новичок - прошу объяснить более подробно , как использовать утилиту hidcon.exe.
Статью Скрытие консольных окон я прочитал.... Пытался самостоятельно разобраться и понять, экспериментировал но не получилось... :durak: Мне нужно запустить (без отображения конс. окна) пакетный файл , например : Install.cmd. Нужно "hidcon.exe" указать в самом пакетном файле ? Если -ДА, то результата нет. Окно консольное отображается. Если же создать ещё один пакетник с командой на скрытый запуск Install.cmd Код:
hidcon.exe Install.cmd всё срабатывает, но опять же запускается первый пакетный файл с отображением консольного окна... Подскажите пожалуйста, как правильно применить ? И как я понял для использования этой утилиты предполагается её наличие в %windir%\system32 ? :sorry: |
shao
Цитата:
Если Вам нужно ее выполнить из другого бат файла, например, start.bat и чтобы окно start.bat не висело пока скрыто выполняется Install.cmd, то добавьте в строку команду Start: Код:
Start "" hidcon.exe Install.cmd Цитата:
|
Большое спасибо gora, за ответ и совет !
Возможно не совсем в той теме задаю следующий вопрос, но он возник , как следствие предыдущих. Если создан файл тихой установки, в котором есть пакетный файл с командой использующей утилиту hidcon.exe и он используется в дистрибутиве в качестве эддона - то как тогда он будет работать ? Значит утилиту hidcon.exe нужно где-то размещать в дистрибутиве (чтобы не перепаковывать эддон), или чтобы при установке Windows hidcon.exe была установлена/помещена в системную папку system32. Видно я чего-то недопонимаю, к сожалению... |
Цитата:
Вообще трудно советовать, если не имеешь самого аддона, дадите ссылку - скажу точнее. |
Цитата:
И все-таки , если не затруднит - ещё проконсультируйте пожалуйста: Утилиты для скрытия консольных окон : hidcon.exe или cmdow.exe - где , корректно нужно разместить (одну из них) в дистрибутиве , чтобы они при установке Windows, были установлены/помещены в системную папку system32. Я где-то на сайте или форуме видел информацию об этом (что-то говорилось о папке $OEM$ ), но не помню точно. З.Ы. Использовал "Поиск" - не нашел.. |
Цитата:
|
Самый простой и четкий способ скрытно запустить батник:
1. Скачиваем hidcon.exe, помещаем его куда угодно (например C:\hidcon.exe) 2. Например нам нужно запустить C:\mybat.bat. 3. Создаем ярлык для C:\hidcon.exe и далее нажимаем на него правой кнопкой, выбираем свойства и во вкладке "ярлык" в строке "объект" прописываем C:\hidcon.exe mybat.bat. 4. Далее кидаем этот ярлык в папку автозагрузка. Вот и все. В результате при запуске винды абсолютно ничего не будет мелькать и не нужно писать никаких дополнительных батников. P.S. Можно и в назначенные задания его кинуть. |
Bat_To_Exe_Converter
invisible application (вроде) уже когда-то поднимали этот вопрос) |
Можно обойтись и без доп. утилит, например:
скрипт js ;название файла: имя_пользователя.js var WSHShell = WScript.CreateObject("WScript.Shell"); WSHShell.Run("имя_батника",0); прим. батник в той же папке, что и скрипт, если dir-и разные, то путь должен быть вида: C:\\dir1\\dir2\\filename.bat или vbs Set WshShell = CreateObject("WScript.Shell") WshShell.Run "путь\ имя_батника",0 или с ожиданием завершения Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("путь\ имя_батника",0, True) MsgBox "Пакетник выполнен! Значение кода возврата - " & RetCode ну и если батник содержит простой сценарий, то можно и так: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "cmd /с Echo Hello && ver && hostname && Echo %windir% && ..... ",0 "0" и есть параметр запуска приложения без окна чтобы его снова увидеть Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate(" имя приложения") хотя использование таких утилит как cmdow, hidicon, showtool, hswind позволяет использовать более интересные функции .... для конкретной задачи: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "cmd /с DEL /F /Q путь\*.*",0 |
Какой п"дор удалил hidcon.exe c oszone
|
|
У меня сделано так я использовал Advanced BAT to EXE Converter http://www.bdargo.com/ скомпелировал no_console_[].exe с кодом
echo off CLS For /F "Tokens=1,2* Delims=*" %%i In ('echo %~n0^|Find "["') Do (set IM=%%i%%j%%k) For /F "eol=[ Tokens=1,2* Delims=[]" %%i In ('echo %~n0^|Find "["') Do ( echo %IM%|Find "[%%i]" && Set imbat=%%i&&goto OK echo %IM%|Find "%%i[%%j]" && Set imbat=%%j&&goto OK echo %IM%|Find "%%i[%%j]%%k" && Set imbat=%%k&&goto OK goto ext ) :OK cd /d "%~dp0" If exist "%imbat%.bat" (Call "%imbat%.bat" & exit ) Else (goto ext) :ext exit Файл 133685 когда нужно скрыть окно *.bat переименовываем испол-й файл no_console_[имя вашего бата без расширения].exe и кидаем в корень *.bat файла :) :) :) |
Цитата:
мне не хотелось использовать cmdnow, hidcon т.п, а стандартными виндовыми методами пакетник спрятать нельзя но меня вполне устроил вариант когда пакетник запускается свёрнутый в начале пакетника прописал if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) |
Цитата:
|
Цитата:
Цитата:
vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\ваш_файл.bat" & Chr(34), 0 Set WshShell = Nothing В приципе да, вариант хороший. Но мне в своё время этот вариант не подошёл, было это связано с тем что не у всех стоял WScript\CScript и ставить это добро тоже было не вариант. Не моя прерогатива была. |
Цитата:
Код:
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c ""C:\ваш_файл.bat""", 0, False |
Iska,
а как записать с передачей параметром, как в Autoit Код:
ShellExecute($CmdLine[1],'','','',@SW_HIDE) |
alpap, тут параметры идут вместе с командной строкой. В примере выше:
Код:
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c ""C:\ваш_файл.bat""", 0, False В качестве рабочего каталога, если мне не изменяет память (лень сейчас проверять) используется текущий каталог текущего диска (читать/менять/назначать — WshShell.CurrentDirectory). |
Iska,
т.е., если я пишу в "hide.bat" строку: Код:
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c ""%~1""", 0, False и теперь могу запускать так: "hide.exe" "C:\ваш_файл.bat"? |
Цитата:
|
Цитата:
поэтому я и спрашивал, как записать строку в "hide.vbs": Код:
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c ""Чтобы тут был параметр, понятный vbs""", 0, False |
Цитата:
Цитата:
Код:
WScript.CreateObject("WScript.Shell").Run """%comspec%"" /c """ & WScript.Arguments.Item(0) & """", 0, False |
Цитата:
|
Может кому пригодится, ещё одна утилита для скрытного запуска: autobat.zip
readme.txt: Программа принимает на вход данные: "Name" - Имя запускаемого приложения/файла "Folder" - Директорию файла "Povtor" - Псевдобесконечный цикличный запуск с интервалом "TimeMin"- Время между повторениями в минутах: ВНИМАНИЕ! Указывать только целочисленные значения |
PavelSES,
как ни запускаю выкидывает сюда: ftp://ftp.bat/ ПРИЧЕМ ПОСЛЕ УДАЛЕНИЕ ЭТОЙ ПРОГРАММЫ ВСЕ-РАВНО ЧЕРЕЗ КАКОЙ-ТО ПРОМЕЖУТОК ВРЕМЕНИ ПОСТОЯННО ТУДА СТУЧИТСЯ! |
Цитата:
Это потому что умолчания сделаны через пень-колоду и без каких-либо проверок. Краткий аналог на PowerShell выглядит примерно так (и работает, естественно, так же): Код:
$oProcessStartInfo = [System.Diagnostics.ProcessStartInfo]::new() Цитата:
|
Цитата:
|
PavelSES,
а я по вашему машину Илона Маска запускал? Цитата:
Цитата:
|
Цитата:
В конфиге программы надо указать путь к файлу, частоту запуска и тип запуска (одноразовый или постоянный цикл с повтором через определенный промежуток времени...), и если указан бесконечный повтор то да программа будет висеть в процессах до бесконечности. И да она будет пытаться открывать в ассоциированной программе неизвестный тип файла, который ВЫ не УКАЗАЛИ!!! |
PavelSES, негативное впечатление происходит от того, что приведённый Вами код криво написан и криво подан. Результат — налицо.
Цитата:
|
Цитата:
из этого ридми readme.txt: Программа принимает на вход данные: "Name" - Имя запускаемого приложения/файла "Folder" - Директорию файла "Povtor" - Псевдобесконечный цикличный запуск с интервалом "TimeMin"- Время между повторениями в минутах: ВНИМАНИЕ! Указывать только целочисленные значения что можно понять? Я, как все нормальные люди, запускал классически: autobat.exe name.bat Допустим надо указать все параметры (хорошо, если еще очередность правильная): autobat.exe name.bat С:\ 0 00 имя файла с расширением хоть указывать? указывать папку как привел или без завершающего слеша (имя файла или папки в пути если будет с пробелом этот параметр можно в кавычки брать?) повтор если не нужен - 0 ставить? время повторения не нужно соотвественно - 00 писать как в примере? Можно было тогда пример запуска привести?!!! Или по уму сделать как другие, не указаны следующие параметры, значит не используются и на работу влияния не оказывают и тогда классический вариант должен правильно и без проблем работать. |
Сн
Цитата:
Программа запускается бех каких либо ключей запуска, и заметьте в ридми нигде не указано что программу нужно запускать именно с доп ключами. Параметры указываются в конфиге, что тоже удобно. А запускается как угодно хоть из автозагрузки хоть из планировщика с минимальными усилиями. На этом надеюсь откланяться. |
Цитата:
так что получается, мне каждый раз надо конфиг редактировать чтобы что-то другое скрыть, плюс этот конфиг таскать или не забыть учитывать. И для кого это тогда, продвинутых? А если человеку просто скрытно надо запустить готовый bat, надо сидеть изучать как теперь все это сделать? На vbs или с помощью nircmd одна строка, все прозрачно, никаких телодвижений и не надо прицеп из разных библиотек или конфигов таскать. Плюс вижу только один - размер файла. |
Есть ещё такая прожка:
https://unclassified.software/en/apps/hideconsole Код:
HideConsole.exe c:\ntpdate.exe 131.188.3.220 |
Время: 18:24. |
Время: 18:24.
© OSzone.net 2001-