2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134
Advertisement

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

Advertisement

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

Advertisement

Ответы (9)

88
88
88
2010-05-11 19:55:49 +0000

Сохраните в wscript, например, hidecmd.vbs после замены “test.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 .

45
45
45
2012-02-15 09:52:03 +0000

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

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

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

21
Advertisement
21
21
2014-01-10 17:50:44 +0000

Просто чтобы расширить ответы на вопрос “Использовать скриптинг 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 файл (например, “External Tools” в Visual Studio), вы захотите позвонить C:\Windows\System32\wscript.exe с vbs файлом в качестве первого параметра и вашим пакетным файлом в качестве второго.

9
9
9
2010-05-11 19:50:45 +0000

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

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

9
Advertisement
9
9
2010-05-11 17:36:13 +0000

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

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

Бесплатная GPL с открытым исходным кодом “Create Hidden Process” http://www.commandline.co.uk/chp/

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

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

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

  • *

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

6
Advertisement
6
6
2013-05-29 03:48:54 +0000

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

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

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

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

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

  • *

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

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1
6
6
6
2014-10-27 08:23:11 +0000

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

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

Удачи!

5
Advertisement
5
5
2010-05-12 16:03:41 +0000

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

Скрытый старт - Запускайте приложения и пакетные файлы без окна консоли или UAC-запроса

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

Похожие вопросы

3
19
10
28
9
Advertisement