Запустите командный файл полностью скрытым способом

450237
Moayad Mardini

Я ищу какой-нибудь способ запуска командного файла (.bat) без чего-либо видимого пользователю (без окна, без имени панели задач, .etc ..).

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

117
Ха-ха! Точно нет. Я разрабатываю службу Windows, которая будет запускать командный файл время от времени. Moayad Mardini 14 лет назад 0
Службы Windows не запускаются как командные файлы. Они работают как сервисы. Вам нужно уточнить вопрос - как написано, так и с комментариями это не имеет смысла для меня. CarlF 14 лет назад 4
У меня есть служба Windows, которая запускает пакетные файлы. Не то, чтобы сервис был командным файлом. Moayad Mardini 14 лет назад 1
На каком языке вы пишете свои услуги? Hugh Allen 14 лет назад 1
там тоже есть старт. barlop 10 лет назад 0
Если вы уже разрабатываете сервис, почему бы не использовать NSSM для создания сервиса из вашего скомпилированного файла? KnightOfNi 9 лет назад 0
Просто чтобы добавить в список программ - [Hidden Start] (http://www.ntwind.com/software/hstart.html). Karan 8 лет назад 0
Я думаю, что ваша ссылка не работает. Artemis Fowl 5 лет назад 0
"решение" имеет гнилой ссылку, [архив здесь] (https://web.archive.org/web/20121028054849/http://www.computing.net/answers/dos/run-batch-file-invisiblestealth/14270 .html) Shaun Dreclin 5 лет назад 0

23 ответа на вопрос

99
harrymc

Решение 1:

Сохраните эту одну строку текста как файл invisible.vbs:

CreateObject ("Wscript.Shell"). Выполнить "" "" & WScript.Arguments (0) & "" "", 0, False

Чтобы незаметно запустить любую программу или командный файл, используйте его следующим образом:

wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Некоторые другие места \ MyBatchFile.bat"

Чтобы также иметь возможность передавать / передавать список аргументов, используйте только две двойные кавычки

CreateObject ("Wscript.Shell"). Run "" & WScript.Arguments (0) & "", 0, False

Пример: Invisible.vbs "Kill.vbs ME.exe"

Решение 2:

Используйте инструмент командной строки для автоматического запуска процесса: Quiet, hidecon или hideexec .

Почему 4 двойные кавычки, не могли бы вы объяснить? Starx 12 лет назад 1
Что если нам нужно запустить скрытую программу? Starx 12 лет назад 0
Синтаксис @Starx VB. `&` означает объединенные строки. Строки заключены в двойные кавычки (`" `). Последовательные двойные кавычки (` "" `) внутри разделителей строк означают буквальные двойные кавычки (` "`). Таким образом, четыре двойных кавычки (`" "" "`) будут строковым литералом из одного символа, двойной кавычки (`" `). Сложите его вместе и" "" "" & WScript.Arguments (0) & " "" "" станет "", где"`- первый аргумент командной строки, переданный скрипту. Bob 11 лет назад 3
Классное и простое решение. Проверено, все работает. Thanx. nightcoder 11 лет назад 0
Наконец, после нескольких часов потраченного времени на поиски и попытки, этот лайнер VBS делает свое дело. Самое простое решение для запуска пакетного файла в автоматическом режиме из запланированной задачи, спасибо. Mr. Bungle 10 лет назад 0
`CreateObject (" Wscript.Shell "). Выполнить" "" "& WScript.Arguments (0) &" "" ", 0, False`, возможно ли получить этот код в` JAVA` или atleat в файле bat Windows, так как Я не должен использовать VB .. пожалуйста, помогите .. Babel 9 лет назад 0
Как изменить его так, чтобы он передавал все аргументы? Было бы удобнее передать аргументы без их цитирования. Ctrl-C 8 лет назад 3
Разве для этого не нужно создавать командный файл для помещения `wscript.exe" C: \ Wherever \ invisible.vbs "...` внутри? endolith 6 лет назад 2
`hideexec`, похоже, испытывает некоторые трудности при запуске команд с повышенными правами. Vlastimil Ovčáčík 6 лет назад 0
Вызов без параметров работает, безразличный вызов с параметрами работает, но я не могу найти способ заставить последний использовать скрипт, который сам содержит пробелы и поэтому должен быть заключен в кавычки. Есть ли способ вызвать скрипт, передаваемый в `" C: \ Some Other Place \ MyBatchFile.bat "Param1 Param2`? // РЕДАКТИРОВАТЬ: один из обходных путей - использовать неразрывную ссылку на интервальный скрипт. Lilienthal 6 лет назад 0
Как использовать это решение: ** 1: ** создайте пакетный файл, который вы хотите запустить (т.е. в `C: \ apps \ mybatch.bat`). ** 2: ** создайте сценарий invisible.vbs (то есть в `C: \ apps \ invisible.vbs`). ** 3: ** создайте новый ярлык, щелкнув правой кнопкой мыши на * background * (пустое место) папки, в которой вы хотите сохранить ярлык, наведите курсор мыши на «New» в контекстном меню и нажмите «Shortcut». В поле «Расположение элемента» введите `wscript.exe" C: \ apps \ invisible.vbs "" C: \ apps \ mybatch.bat "`. Двойной щелчок по этому ярлыку автоматически запустит пакетный файл. James 5 лет назад 0
25
Paul Cheselske

Чтобы скрыть пакетные файлы или командные файлы или любые файлы .... Используйте встроенную IExpress.exeутилиту Windows XP для создания .EXE из пакетного файла. При использовании IExpressубедитесь, что вы отметили опцию Run hidden и отметили все поля, чтобы ничего не показывать. После того, как вы создадите свой .exe файл, поместите его в любую папку с командами запуска, которую вы выберете, и вы никогда не увидите, что она появится

О, хорошее решение на самом деле. Camilo Martin 11 лет назад 1
Есть ли что-нибудь эквивалентное lexpress.exe в новых версиях Windows, таких как Windows 7? Sнаđошƒаӽ 8 лет назад 6
@ Sнаđошƒаӽ Это в Windows 7 .... только что проверил DarthRubik 7 лет назад 0
@DarthRubik Спасибо, что поделились этим. Я тоже это проверил, и он работает просто отлично. Время поднять ответ. :) Sнаđошƒаӽ 7 лет назад 0
Похоже, что это не работает в Windows 10 64, так как «Command.com» больше не существует Arne S 6 лет назад 0
Я могу подтвердить комментарий @ArneS. Вы можете создать EXE-файл, но он не будет работать из-за отсутствия файлов (например, Command.com). Bram Vanroy 5 лет назад 0
8
joe

использовать Cmdow - это утилита командной строки Win32 для NT4 / 2000 / XP / 2003, которая позволяет перечислять, перемещать, изменять размер, переименовывать, скрывать / не скрывать, отключать / включать, минимизировать, максимизировать, восстанавливать, активировать / инактивировать, закрывать, убивать и удалять окна. Больше.

Запустите скрытый пакетный файл, передав ему параметры: -

cmdow / run / hid mybat arg1 "arg 2"

Но как мне запустить эту команду? Moayad Mardini 14 лет назад 0
cmdow определяется как вредоносное ПО большинством антивирусных продуктов. Следовательно, было бы трудно использовать это решение в местах, отличных от вашего ПК. Ganesh R. 14 лет назад 9
@ Ганеша: есть лучшее решение? Moayad Mardini 14 лет назад 0
Это открытый исходный код? Нет смысла использовать стороннее приложение, которое не является открытым исходным кодом и может упаковывать трояны, когда вы можете сделать то же самое, запустив 1-строчный vbscript для harrymc (см. Ответ в верхней части цепочки). thebunnyrules 6 лет назад 0
Ну, это с открытым исходным кодом, так что это довольно здорово. Можете получить исходный код здесь: https://github.com/ritchielawrence/cmdow thebunnyrules 6 лет назад 1
@thebunnyrules Где-нибудь есть скомпилированная версия? Источник бесполезен для меня без компилятора C ++. И я действительно не хочу загружать и устанавливать компилятор C ++ для одного приложения. corsiKa 6 лет назад 0
7
John T

Запустите скрипт через задание at, не делая его интерактивным:

at 11:00 script.bat 

Другое решение, если вы не возражаете против установки чего-либо вроде Python, вы можете просто создать скрипт и запустить его с pythonw(связанная версия для операций с графическим интерфейсом). Поскольку вы не используете какие-либо графические API, окно не будет отображаться. Просто используйте вызовы, os.system()и он будет имитировать пакетный скрипт, так же, как и ввод строк в командной строке.

Пример:

import os  os.system("tasklist > C:\tasks.txt") os.system("ipconfig /all > C:\netinfo.log") 
Но как мне запустить эту команду? Moayad Mardini 14 лет назад 3
Вам нужно будет либо запланировать запланированное задание, либо написать сервис. Unfundednut 14 лет назад 0
примеры добавлены. John T 14 лет назад 0
7
Jack S

Если ваш пакетный файл может уместиться в одну строку и так много символов, просто используйте ярлык, щелкнув правой кнопкой мыши внутри папки, помещенной в случайный каталог, и пропустив оставшуюся часть мастера, и, наконец, щелкните правой кнопкой мыши на только что созданном ярлыке и щелкните свойства и под целевой введите то, что вы обычно помещаете в файл bat. И Бобс твой дядя!

Плюсы:

 No Command Window Ability to use an icon Same Functionality of bat file 

Минусы:

 Limited to one line, so many characters 
Единственная проблема заключается в том, что вы не можете связать тип файла с ярлыком. Поэтому, если вы хотите открыть пакетный скрипт, дважды щелкнув по нему в проводнике, вам все равно нужен .bat-файл. Björn Lindqvist 10 лет назад 0
Я все еще пытаюсь найти дядю Боба, он где-то здесь! Pimp Juice IT 6 лет назад 0
5
djangofan

Using Windows7, you can use the "Scheduled Task" control panel to schedule a batch file to run in the background invisibly with specified permissions and even as the "SYSTEM" account. See screenshot below:

enter image description here

Furthermore, although with not as many capabilities, you can also create a invisible batch script task like this from the command line using the "AT.exe" command without the '/interactive' option.

Скрытый флажок просто скрывает задачу из пользовательского интерфейса планировщика задач ( Sourav Ghosh 7 лет назад 3
Запускать задачу как «СИСТЕМА», когда ей не нужны привилегии «СИСТЕМЫ» (и которая не была проверена на предмет слабых мест в системе безопасности и закалена), как плохая идея; см. [комментарии здесь] (https://stackoverflow.com/q/6568736/1672723#6568823). Scott 5 лет назад 0
4
Brad Gilbert

Вы можете запустить его легко свернутым.

start /MIN batch.cmd 
или используйте / B вместо этого! rany 7 лет назад 2
4
BijaN-R

I don't like VBScript solution.

Download and copy nircmd.exe to your %systemroot%\system32 folder, then add this command to first line of your batch:

nircmd.exe win hide ititle "cmd.exe" 

or make your batch title custom first with title command to avoid from hiding all cmd windows, like this:

title MyBatch nircmd.exe win hide ititle "MyBatch" 
Я использую этот точный метод, но в течение некоторого времени не получалось, что nircmd не скрывает окно cmd, просто свернуто в панель задач и не может быть восстановлено нажатием на него. Не знаю почему ... James Yang 5 лет назад 0
3
Rolnik

Кажется, кто-то составил список из 7-8 способов запустить «тихий»:

http://forums.techguy.org/dos-other/644932-solved-howto-run-batch-file.html

Пожалуйста, перечислите их здесь, не размещайте ответ, это просто ссылка в другом месте. endolith 7 лет назад 5
3
BullyWiiPlaza

Превосходный Конвертер Bat To Exe конвертирует ваш файл .batили .cmdфайл в .exeфайл.

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

Вот скриншот главного окна интерфейса:


Обратите внимание, что это изображение устарело. Он показывает версию 2.4.8, и по состоянию на сентябрь 2018 года веб-сайт предлагает версию 3.0.10.0 (последнее обновление 2018-03-23).

Предупреждение: на веб-сайт www.f2ko.de ссылаются coinhive.com, что широко определяется как вредоносное ПО .