2010-10-12 06:09:11 +0000 2010-10-12 06:09:11 +0000
174
174

Windowsのコマンドラインをバックグラウンドで実行するにはどうしたらいいですか?

Windowsのコマンドラインをアクティブなユーザーと対話せずにバックグラウンドで実行するにはどうしたらいいですか?

回答 (10)

257
257
257
2013-05-03 14:28:39 +0000

これは少し遅いですが、私はちょうど答えを自分で検索している間にこの質問に出くわし、私はこれを見つけました:

START /B program

Windows上で、Linuxコマンドに最も近いです:

program &

コンソール HELPシステムから:

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.

私がそれで見た1つの問題は、あなたがコンソールウィンドウに書き込む1つ以上のプログラムを持っていることです、それは少し混乱して混乱を取得します。

それをユーザーと相互作用しないようにするためには、ファイルに出力をリダイレクトすることができます:

START /B program > somefile.txt
70
70
70
2011-09-30 11:44:07 +0000

という意味なのではないかと疑っています。バックグラウンドで何かを実行して、起動したプログラムを継続したままコマンドラインをすぐに戻す。

40
40
40
2010-10-12 06:30:43 +0000

あなたの質問はかなり漠然としていますが、必要な情報が含まれているかもしれない ServerFaultの投稿があります。そこでの答えは、バッチファイルウィンドウを非表示にして実行する方法を説明しています:

代わりにWindowsスクリプトファイルを使用して静かに実行することができます。実行方法は、不可視モードでスクリプトを実行することを可能にします。このような

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

のような .vbs ファイルを作成してスケジュールします。この例の第2引数は、ウィンドウのスタイルを設定します。0は “ウィンドウを隠す "という意味です。

15
15
15
2012-09-13 06:55:32 +0000

001

上のものは、そのUnixの対応するものとかなり近いです。

7
7
7
2016-09-01 22:20:49 +0000

以下のような(コメント付き!)PowerShellスクリプトを使うことができます:

# 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

これを.ps1ファイルとして保存してください。スクリプトの実行を有効にした後( PowerShellタグwiki のスクリプトを有効にするを参照)、実行ファイルの名前と引数行を渡すことができます。例:

.\hideproc.ps1 'sc' 'stop SomeService'

Windows 10で動作することを確認しました。

3
3
3
2018-07-09 04:30:36 +0000

これは私のPHP内部サーバーがバックグラウンドに入る方法です。だから技術的にそれはすべてのために動作する必要があります。

start /B "" php -S 0.0.0.0:8000 &

のおかげで

2
2
2
2017-08-09 05:08:06 +0000

2つの例で、関連する答え:&002&002 1. 以下はcalc.exeを開きます:

コールSTART / B “私のcalc” “calc.exe”

1。時には前景が望ましくない場合がありますので、以下のように最小化して実行します。

call start /min “n” “notepad.exe”

call start /min “my mongod” “%ProgramFiles%\MongoDB\Server3.4\binmongod.exe”

それが助けになることを望みます。

1
1
1
2011-09-30 14:00:42 +0000

ユーザーに知られることなくコマンドラインプログラムを実行させたい場合は、Windowsサービスとして定義するとスケジュールに沿って実行されます。

-1
-1
-1
2015-09-03 14:10:25 +0000

このリンク先で正しい方法を見ることができます: コマンドウィンドウを表示せずにスケジュールされたタスクを実行する方法

要約すると、「ユーザーがログオンしているかどうかを確認して実行する」にチェックを入れる必要があります。タスクのユーザ認証情報は「OK」を押した後に入力する必要があります。

-2
-2
-2
2015-07-13 23:29:17 +0000

ちょうどこのスレッドに出くわしました windows 7 は、パワーシェルを使用して、バックグラウンドで実行可能ファイルを実行し、Unix のファイル名

と全く同じです 例: start -NoNewWindow ファイル名

help start

NAME Start-Process

SYNTAX Start-Process [-FilePath] [[-ArgumentList] ] を実行します。[-Credential] [-WorkingDirectory] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError] [-RedirectStandardInput] [-RedirectStandardInput] [-RedirectStandardError] [-RedirectStandardInput RedirectStandardOutput] [-Wait] [-WindowStyle {Normal | Hidden | Minimized | Maximized}] [-UseNewEnvironment] []

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]

ALIASES saps start