コマンドプロンプト:スクリプトをバックグラウンドで実行する(Linuxの&/ bgと同等)


23

Linuxではこれを行うことができます:

$ php blah.php> some.log&

blah.phpバックグラウンドで実行します。これは同じですCtrl+ zその後、bgコマンドを。

Windowsコマンドプロンプトのいずれか/両方に相当するものはありますか?


1
あるとは思いませんが、必要なだけコマンドプロンプトを起動できます。何を達成しようとしていますか?
-uSlackr

>を使用してファイルにログを記録していますが、ただそこに座るように促したくありません。同じディレクトリの同じプロンプトウィンドウで作業を続けたい場合があります。
-DOOManiac

Windowsのバージョン
EBGreen

Windows 7(64ビット)
-DOOManiac

回答:


41

Windowsには、Linuxに似た機能があり、&コンソールを引き継がないようにプロセスを起動します。ただし、コマンドラインフラグではなく、コマンドプレフィックスです。

次のように、コマンドのstart前でコマンドを実行するだけです: C:\> start myprog.exe

また、実行可能ファイルだけでなく、コマンドでも機能します。 C:\> start dir

これにより、新しいコンソールウィンドウが起動し、内部でコマンドが実行されます。

コマンドの実行時に新しいコンソールウィンドウが表示されないようにするには、次の/Bようにスイッチを使用します。 C:\> start /B myprog.exe

コマンドの実行方法を構成するために指定できる他のいくつかのオプションがあります。startを使用してヘルプを読むと、それらを理解できstart /?ます。


1

これにより、コマンドプロンプトまたはバッチファイルからバックグラウンドでファイルを実行できます。

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

次にMyFile、バックグラウンドで実行するファイルに置き換えます。


2
(1)これがどのように機能するか説明できますか(少しだけ)。(2)基本的に、これはstartコマンドを使用します。ユーザーのコマンドを実行する中間物を作成し、startコマンドを使用して中間物を開始します。ですから、これはRube Goldbergマシンです。これは、start直接使用することを提案する他の回答よりも優れていますか?(3)質問はI / Oリダイレクト(> some.log)を示しています。ユーザーはこの回答でどのようにI / Oリダイレクトを行いますか?コマンドラインに配置するかWshShell.Run、スクリプトの行に組み込みますか?
スコット

コメントで返信しないでください。回答を編集して、より明確で完全なものにします。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.