как я могу выполнить командную строку windows в фоновом режиме?

<p>как я могу выполнить командную строку windows в фоновом режиме, не взаимодействуя с активным пользователем?</p>

<p>ваш вопрос довольно расплывчатый, но есть <a href="https://serverfault.com/questions/9038/run-a-bat-file-in-a-scheduled-task-without-a-window">сообщение о serverfault</a> , которое может содержать необходимую вам информацию. ответ там описывает, как запустить скрытое окно командного файла:</p><blockquote> <p>вы можете запустить его без вывода сообщений, используя файл сценария windows. метод run позволяет запускать скрипт в невидимом режиме. создайте файл <code>.vbs</code>, как этот</p> <pre class="lang-vbs prettyprint-override"><code>dim winscripthost set winscripthost = createobject("wscript.shell") winscripthost.run chr(34) & "c:\scheduled jobs\mybat.bat" & chr(34), 0 set winscripthost = nothing </code></pre> <p>и наметить это. второй аргумент в этом примере устанавливает стиль окна. 0 означает «скрыть окно».</p> </blockquote>

<p>это немного поздно, но я просто наткнулся на этот вопрос, когда искал ответ сам, и нашел это:</p><pre><code>start /b program </code></pre><p>которая в windows наиболее близка к команде linux:</p><pre><code>program & </code></pre><p>из консольной системы help:</p><pre><code>c:\>help start starts a separate window to run a specified program or command. start ["title"] [/d path] [/i] [/min] [/max] [/separate | /shared] [/low | /normal | /high | /realtime | /abovenormal | /belownormal] [/node <numa node>] [/affinity <hex affinity mask>] [/wait] [/b] [command/program] [parameters] "title" title to display in window title bar. path starting directory. b start application without creating a new window. the application has ^c handling ignored. unless the application enables ^c processing, ^break is the only way to interrupt the application. </code></pre><p>одна проблема, которую я видел с этим, состоит в том, что у вас есть больше чем одна программа, пишущая в окно консоли, это становится немного запутанным и перемешанным.</p><p>чтобы он не взаимодействовал с пользователем, вы можете перенаправить вывод в файл:</p><pre><code>start /b program > somefile.txt </code></pre>

<p>я подозреваю, что вы имеете в виду: запустить что-то в фоновом режиме и немедленно вернуть командную строку с продолжением запущенной программы.</p><pre><code>start "" program </code></pre><p>какой unix-эквивалент</p><pre><code>program & </code></pre>

<pre><code>start /min program </code></pre><p>вышеупомянутый довольно близок с его аналогом unix <code>program &</code></p>

<p>вы можете использовать этот (прокомментированный!) скрипт powershell:</p><pre class="lang-ps prettyprint-override"><code># create the .net objects $psi = new-object system.diagnostics.processstartinfo $newproc = new-object system.diagnostics.process # basic stuff, process name and arguments $psi.filename = $args[0] $psi.arguments = $args[1] # hide any window it might try to create $psi.createnowindow = $true $psi.windowstyle = 'hidden' # set up and start the process $newproc.startinfo = $psi $newproc.start() # return the process object to the caller $newproc </code></pre><p>сохраните его как файл <code>.ps1</code>. после включения выполнения сценария (см. «включение сценариев в <a href="https://superuser.com/tags/powershell/info">вики-тег powershell»</a> ), вы можете передать ему одну или две строки: имя исполняемого файла и, необязательно, строку аргументов. например:</p><pre><code>.\hideproc.ps1 'sc' 'stop someservice' </code></pre><p>я подтверждаю, что это работает на windows 10.</p>

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

<p>вот как мой php внутренний сервер переходит в фоновый режим. технически это должно работать для всех.</p><pre><code>start /b "" php -s 0.0.0.0:8000 & </code></pre><p>спасибо</p>

<p>соответствующий ответ с двумя примерами:</p><ol> <li>ниже открывается calc.exe:</li> </ol><blockquote> <p>вызовите start/b "мой calc" "calc.exe"</p> </blockquote><ol start="2"> <li>иногда передний план нежелателен, тогда вы запускаете свернутый, как показано ниже:</li> </ol><blockquote> <p>вызовите start/min "my mongod" "% programfiles%\mongodb\server\3.4\bin\mongod.exe"</p> </blockquote>