Как скрыть исполнение файла CMD или BAT

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

Вы можете скрыть вывод выполняемых в консоли команд, добавив в начало файла CMD или BAT строчку @echo off, но чтобы сделать невидимым окно самой командной строки, потребуется нечто иное.

@echo off

Решение очень простое. Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad++ или другой текстовый редактор, скопируйте и вставьте в него следующий код:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\script.cmd" & Chr(34), 0
Set WshShell = Nothing

В данном примере путь к файлу командной строки выглядит как C:\script.cmd, у вас же он может быть другим. Сохраните файл, дав ему произвольное имя и обязательное расширение VBS. Обратите внимание — кавычки в коде должны быть прямыми, иначе при запуске скрипта получите ошибку.

VBS

Когда вам нужно будет выполнить файл командной строки, запустите VBS-скрипт, а он в свою очередь запустит ваш «батник», который выполнится в скрытом режиме. Столь раздражающего вас чёрного окна командной строки вы больше не увидите.

Наверное, кто-то из наших читателей спросит: а для чего все эти сложности? Неужели то, что делает файл CMD, не может сделать VBS? Может, просто язык Visual Basic Script знают весьма немногие, а с командной строкой более или менее хорошо знакомы все, кто считает себя продвинутым пользователем.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (14 оценок, среднее: 4,79 из 5)
Загрузка...

22 комментария

  • как на скриншоте блокнота. надо чтобы там амперсанты были, а HTML заменяет их кодом _a_m_p_;

  • Сделал .bat через gpo создал политику запуска этого .bat на всех компах в домене от имени доменного администратора (что бы UAC не срабатывал), а с этим скриптом UAC отрабатывает. Чтобы черное окно не раздражало нужно делать ярлык .bat файла и в нем ставить "свернуть окно". Как-то так

    • Юрий, здравствуйте!
      Если не трудно - подскажите, пожалуйста, как сделать запуск bat файла, чтобы UAC не срабатывал? (мой вопрос может показаться бредом - пока мало в этой теме разбираюсь). Заранее спасибо!

  • Дмитрий огромное спасибо сегодня сотворил первый исполняемый бат он же будет носителем тела в сф-икс архиве останется только замаскировать под картинку или что другое и нагрузить комп жертвы по полной. хотелось бы узнать у Вас как обойти антивир не грузя его до бесконечности скрыто запустить процесс. Заранее благодарен!!!

  • Вообще-то несколько странный совет - использовать vbs. Ведь вопрос поставлен однозначно: как скрыть исполнение файла CMD или BAT. Конкретно - CMD или BAT! А средства самой командной строки чем не устраивают?
    шаг 1-й: минимизировать окно. Скрывать совсем может оказаться ну очень вредно.
    if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b)
    шаг 2-й: скрыть ВСЮ информацию в окне.
    set OUTPUT=nul
    if "%STDOUT_REDIRECTED%" == "" (
    set STDOUT_REDIRECTED=yes
    cmd.exe /c %0 1>%OUTPUT% 2>%OUTPUT%
    exit /b %ERRORLEVEL%
    )

    Так сказать - без привлечения "костылей"...

    • Здравствуйте!
      Вопрос старый, но всё же: по отдельности эти два шага отрабатывают на УРА, но вместе не полностью.
      Если развернуть окно, то результат выполнеия виден.
      Есть возможность подправить?

      • Стасу. "никак. он просто тебе написал для того, чтобы… написать" - увы, каждый судит по себе, соболезную.

        Артёму. Как реализовать? Да просто вставить в начало cmd-файла. После @echo off например.
        С каким расширением? Да вроде вопрос поставлен: "Как скрыть исполнение файла CMD или BAT"

        Прошу прощения, но не думал, что вплоть до такого уровня объяснять надобно. В голову не пришло... :(

  • ремарка - пример делался для объяснения юзверям механизма как они заражают свои пк самостоятельно, скачивая как они думают музыку. антивирус не реагирует :) у кого просмотрщик изображений сразу показывает их на весь экран (FastStone Image Viewer и иже с ним) в первые мгновения могут испытать шок, просто нажмите ESC :)

  • Отлично работает (если в коде оба & заменить на простые двойные кавычки) НО:
    в WinXP фокус проходит, т.к. там командная строка по умолчанию от админа. В Win7 работает, если командная строка не требует админа, а если требует, то всё запускается скрыто, как положено, но не работает.
    Как сделать, чтобы VBS запускал CMD под админом? (в опциях cmd-файла поле "уровень прав" недоступно)

    • Есть другой способ спрятать окно cmd — с помощью инструмента HidCon:
      создать ярлык к программе HidCon, открыть свойства ярлыка и после пути к проге дописать параметры.
      При необходимости там же, в свойствах ярлыка указать "запуск от администратора".
      Пример1:
      С:\hidcon\hidcon.exe C:\MyProg\program.exe c:\MyProg\parameter.lst
      где C:\MyProg\program.exe c:\MyProg\parameter.lst - это консольная прога с файлом-параметром (вместо которого можно писать команды)

      Пример2: (с использованием переменных среды)
      С:\hidcon\hidcon.exe "%programfiles%\MyProg\program.exe" "%programfiles%\MyProg\parameter.lst"

      Пример3: (запуск не под админом, даже если в свойствах ярлыка Hidcon стоит админ)
      С:\hidcon\hidcon.exe c:\dir\comand.cmd

  • способ с VBS работает, а как остановить его выполнение, если вдруг понадобиться?

    • Просто завершите wscript.exe в диспетчере задач, или используйте CMD-код:

      taskkill /f /im wscript.exe

  • Здравствуйте.
    Перезагружаю программу таким способом.

    taskkill /F /T /IM test.exe
    start test.exe
    Работает, только программа запускается свернутой на панели задач. А как можно сделать чтобы запускалась нормально ?

  • содержимое cmd такое: (черное окно сразу пропадает)
    @echo off
    start glc_player.exe

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *