it-swarm-ru.tech

Как запустить командный файл без запуска "командного окна"?

В Windows XP можно ли запустить пакетный файл (.bat или .cmd) через ярлык без «черного окна»?

127
dugres

Сохраните следующее как wscript, например, hidecmd.vbs после замены «testing.bat» именем вашего пакетного файла.

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

Второй параметр oShell.Run - это значение intWindowStyle, указывающее внешний вид окна программы, а нулевое значение - для скрытого окна.

Ссылка здесь http://msdn.Microsoft.com/en-us/library/d5fk67ky.aspx

85
Shaji

Это просто упрощение ответа Шаджи. Вы можете запустить свой пакетный скрипт через скрипт VBScript (.vbs) следующим образом:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Это выполнит ваш командный файл без показанного командного окна.

43
greatwolf

Просто чтобы развернуть ответы «Использовать сценарии Windows» (которые я считаю наиболее подходящими, поскольку они уже встроены), вот как это сделать, используя один скрипт-обертку и передавая имя «реального» пакетного файла в качестве параметра. Дополнительные параметры будут переданы в командный файл.

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

Так, например сохраните указанный выше файл как NoShell.vbs где-нибудь, затем вызовите:

NoShell.vbs c:\foo\my_batch_file.bat

Наконец, если вы хотите запустить его откуда-то, что не понимает файл .vbs (например, «Внешние инструменты» в Visual Studio), вам нужно вызвать C:\Windows\System32\wscript.exe с файлом vbs в качестве первого параметра и ваш пакетный файл как второй.

20
Toby J

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

Чтобы запустить его полностью незаметно, вам понадобится что-то еще, например Windows Scripting.

9
ale

Используйте start с опцией '/ B'. Например:

@echo off
start /B go.bat
8
zaf

Вы можете использовать сценарии окна, такие как AutoIt .

Например, просто напишите это в редактор сценариев AutoIt. Это довольно просто

Run("C:\test\batchfile.bat", "", @SW_HIDE)

Если вы хотите запустить его в цикле,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

Скомпилируйте его как .exe - и все готово.


Аналогично, в AutoHotkey :

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide 
6
Adrian Yeoh

Бесплатный GPL с открытым исходным кодом "Создать скрытый процесс"

http://www.commandline.co.uk/chp/

Microsoft Security Essentials и, вероятно, большинство других сканеров вирусов и вредоносных программ будут относиться к исполняемому файлу chp.exe как к вирусу, поскольку он скрывает любую указанную вами программу от отображения окна или кнопки панели задач, как это делают вирусы.

Это не вирус. Например, не скрывает целевой процесс от появления в диспетчере задач. И, конечно, исходный код включен, так что вы можете видеть, что он очень маленький и ничего не делает, кроме запуска любой программы, которую вы ему даете.

Вы даже не должны верить, что включенный chp.exe действительно был собран из этого источника. Вы можете отказаться от прилагаемого chp.exe и скомпилировать свой собственный из исходного кода, и все необходимые инструменты для этого даже бесплатны и загружаемы.


Вы также можете просто создать ярлык для файла .bat или .cmd, затем щелкнуть правой кнопкой мыши ярлык, Свойства, вкладку Ярлык, Выполнить: свернуто. Затем в запланированных задачах используйте ярлык вместо файла .bat/.cmd напрямую. Это предотвратит появление окна, но кнопка панели задач все равно появится.

6
bkw

Использование Скрытый старт (стоит $ 20)

Скрытый запуск - запуск приложений и пакетных файлов без консольного окна или запроса UAC

Консольные приложения и командные файлы регулярно запускаются при запуске Windows или по расписанию. Основным неудобством этого является то, что каждое приложение открывает консольное окно, которое мерцает на экране. Скрытый запуск (или Hstart) - это облегченная утилита командной строки, которая позволяет запускать консольные приложения и командные файлы без какого-либо окна в фоновом режиме, обрабатывать повышение привилегий UAC в Windows 7 и Vista, запускать несколько команд параллельно или синхронно и многое другое. ,.

enter image description here

5
Kyle A

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

  1. Создайте пакетный файл, который вы хотите выполнить, и протестируйте его.
  2. Создайте ярлык для него.
  3. Отредактируйте свойства ярлыка: на вкладке «Ярлык» выберите «Запустить свернутый». Назначьте ему горячую клавишу, и все готово!

Удачи!

4
Willem