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

<p>в windows xp можно ли запустить пакетный файл (.bat или .cmd) через ярлык без «черного окна»?</p>

<p>сохраните следующее как wscript, например, hidecmd.vbs после замены «testing.bat» именем вашего пакетного файла.</p><pre><code>set oshell = createobject ("wscript.shell") dim strargs strargs = "cmd /c testing.bat" oshell.run strargs, 0, false </code></pre><p>второй параметр <code>oshell.run</code> - это значение <code>intwindowstyle</code>, указывающее внешний вид окна программы, а нулевое значение - для скрытого окна.</p><p>ссылка здесь <a href="http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx">http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx</a> </p>

<p>это просто упрощение ответа шаджи. вы можете запустить свой пакетный скрипт через скрипт <a href="http://en.wikipedia.org/wiki/vbscript">vbscript</a> (.vbs) следующим образом:</p><pre><code>'hidebat.vbs createobject("wscript.shell").run "your\_batch\_file.bat", 0, true </code></pre><p>это выполнит ваш командный файл без показанного командного окна.</p>

<p>просто чтобы развернуть ответы «использовать сценарии windows» (которые я считаю наиболее подходящими, поскольку они уже встроены), вот как это сделать, используя один скрипт-обертку и передавая имя «реального» пакетного файла в качестве параметра. дополнительные параметры будут переданы в командный файл.</p><pre><code>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 </code></pre><p>так, например сохраните указанный выше файл как <code>noshell.vbs</code> где-нибудь, затем вызовите:</p><pre><code>noshell.vbs c:\foo\my\_batch\_file.bat </code></pre><p>наконец, если вы хотите запустить его откуда-то, что не понимает файл .vbs (например, «внешние инструменты» в visual studio), вам нужно вызвать <code>c:\windows\system32\wscript.exe</code> с файлом vbs в качестве первого параметра и ваш пакетный файл как второй.</p>

<p>вы можете изменить свойства ярлыка, чтобы запуск был свернут.</p><p>чтобы запустить его полностью незаметно, вам понадобится что-то еще, например windows scripting.</p>

<p>используйте <a href="http://ss64.com/nt/start.html">start</a> с опцией '/ b'. например:</p><pre><code>@echo off start /b go.bat </code></pre>

<p>вы можете использовать сценарии окна, такие как <a href="http://en.wikipedia.org/wiki/autoit">autoit</a> .</p><p>например, просто напишите это в редактор сценариев autoit. это довольно просто</p><pre><code>run("c:\test\batchfile.bat", "", @sw\_hide) </code></pre><p>если вы хотите запустить его в цикле,</p><pre><code>$x=0 do run("c:testbatchfile.bat", "", @sw_hide) sleep(5000) until $x = 1 </code></pre><p>скомпилируйте его как .exe - и все готово.</p><hr><p>аналогично, в <a href="https://autohotkey.com/">autohotkey</a> :</p><pre><code>#notrayicon ; to prevent momentary icon pop-up run whatever.bat arg1 arg2,,hide </code></pre>

<p>бесплатный gpl с открытым исходным кодом "создать скрытый процесс"</p><p> <a href="http://www.commandline.co.uk/chp/">http://www.commandline.co.uk/chp/</a> </p><p>microsoft security essentials и, вероятно, большинство других сканеров вирусов и вредоносных программ будут относиться к исполняемому файлу chp.exe как к вирусу, поскольку он скрывает любую указанную вами программу от отображения окна или кнопки панели задач, как это делают вирусы.</p><p>это не вирус. например, не скрывает целевой процесс от появления в диспетчере задач. и, конечно, исходный код включен, так что вы можете видеть, что он очень маленький и ничего не делает, кроме запуска любой программы, которую вы ему даете.</p><p>вы даже не должны верить, что включенный chp.exe действительно был собран из этого источника. вы можете отказаться от прилагаемого chp.exe и скомпилировать свой собственный из исходного кода, и все необходимые инструменты для этого даже бесплатны и загружаемы.</p><hr><p>вы также можете просто создать ярлык для файла .bat или .cmd, затем щелкнуть правой кнопкой мыши ярлык, свойства, вкладку ярлык, выполнить: свернуто. затем в запланированных задачах используйте ярлык вместо файла .bat/.cmd напрямую. это предотвратит появление окна, но кнопка панели задач все равно появится.</p>

<p>использование <a href="http://www.ntwind.com/software/utilities/hstart.html">скрытый старт</a> (стоит $ 20)</p><blockquote> <p>скрытый запуск - запуск приложений и пакетных файлов без консольного окна или запроса uac</p> <p>консольные приложения и командные файлы регулярно запускаются при запуске windows или по расписанию. основным неудобством этого является то, что каждое приложение открывает консольное окно, которое мерцает на экране. скрытый запуск (или hstart) - это облегченная утилита командной строки, которая позволяет запускать консольные приложения и командные файлы без какого-либо окна в фоновом режиме, обрабатывать повышение привилегий uac в windows 7 и vista, запускать несколько команд параллельно или синхронно и многое другое. ,.</p> <p><img src="https://i.stack.imgur.com/tbqwi.png" alt="enter image description here"></p> </blockquote>

<p>простое решение, без использования каких-либо дополнительных программ.</p><ol> <li>создайте пакетный файл, который вы хотите выполнить, и протестируйте его.</li> <li>создайте ярлык для него.</li> <li>отредактируйте свойства ярлыка: на вкладке «ярлык» выберите «запустить свернутый». назначьте ему горячую клавишу, и все готово!</li> </ol><p>удачи!</p>