Как запустить пакетный файл без запуска "командного окна"?
В Windows XP, могу ли я запустить пакетный (.bat или .cmd) файл по ярлыку, без “черного окна”?
В Windows XP, могу ли я запустить пакетный (.bat или .cmd) файл по ярлыку, без “черного окна”?
Сохраните в 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 .
Это просто упрощение ответа Шаджи. Вы можете запустить ваш пакетный скрипт с помощью VBScript (.vbs) скрипта типа:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Это выполнит ваш пакетный файл без отображения командного окна.
Просто чтобы расширить ответы на вопрос “Использовать скриптинг 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 файлом в качестве первого параметра и вашим пакетным файлом в качестве второго.
Бесплатная GPL с открытым исходным кодом “Create Hidden Process” http://www.commandline.co.uk/chp/
Microsoft Security Essentials, и, вероятно, большинство других сканеров вирусов/зловредных программ будут относиться к исполняемому файлу, chp.exe, как к вирусу, потому что он скрывает любую программу, которую вы укажете, от отображения окна или кнопки панели задач, точно так же, как это делают вирусы.
Это не вирус. Он не скрывает целевой процесс от появления, например, в диспетчере задач. И, конечно же, исходный код включен, так что Вы можете видеть, что он очень маленький и ничего не делает, кроме как запускает любую программу, которую Вы ему даете.
Вам даже не нужно верить, что включенный chp.exe действительно был собран из этого исходного кода. Вы можете отказаться от включенного chp.exe и скомпилировать свой собственный из исходных текстов, и все необходимые для этого инструменты даже бесплатны и доступны для скачивания.
Вы также можете просто сделать ярлык к .bat или .cmd файлу, затем щелкните правой кнопкой мыши по ярлыку, “Свойства”, “Закладка Shortcut”, “Запуск”: Минимизировано. Затем в запланированных задачах используйте этот ярлык вместо .bat/.cmd файла напрямую. Это предотвратит всплытие окна, но кнопка панели задач все равно появится.
Вы можете использовать скриптинг окон, например 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
Простое решение, без использования дополнительных программ.
Удачи!
Используйте Скрытый старт (стоит $20)
Скрытый старт - Запускайте приложения и пакетные файлы без окна консоли или UAC-запроса
Консольные приложения и пакетные файлы регулярно запускаются при старте Windows или по расписанию. Основное неудобство заключается в том, что каждое приложение открывает консольное окно, которое мерцает на экране. Hidden Start (или Hstart) - легковесная утилита командной строки, позволяющая запускать консольные приложения и пакетные файлы без какого-либо окна в фоновом режиме, обрабатывать повышение привилегий UAC под Windows 7 и Vista, запускать несколько команд параллельно или синхронно, и многое другое.