回答:
exitキーワードを使用できます。これが私のバッチファイルの1つからの例です:
start myProgram.exe param1
exit
exit
、バッチファイルに入れる必要はほとんどありません。
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
startコマンドを使用して、バッチファイルがプログラムを待機しないようにします。「開始」の後に実行するプログラムの前に空の二重引用符を付けることを忘れないでください。たとえば、バッチコマンドからVisual Studio 2012を実行する場合は、次のようにします。
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
開始後の二重引用符に注意してください。
start <window name> <program name>
STARTコマンドを見て、これを行うことができます。
START rest-of-your-program-name
たとえば、このバッチファイルはメモ帳が終了するまで待機します。
@echo off
notepad c:\test.txt
しかし、これはしません:
@echo off
start notepad c:\test.txt
私自身の質問から:
start /b myProgram.exe params...
既存のDOSセッションからプログラムを起動すると機能します。
そうでない場合は、vbスクリプトを呼び出します
wscript.exe invis.vbs myProgram.exe %*
Windowsスクリプトホストファイル名を指定して実行()メソッドをとります。
これがinvis.vbsです。
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
これが私がバッチファイルからJavaクラスを実行しようとしたときに私のために働いた唯一のものです:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
start
適切な構文に従って、プロジェクトに合わせてコマンドをカスタマイズできます。
Syntax
START "title" [/Dpath] [options] "command" [parameters]
Key:
title : Text for the CMD window title bar (required)
path : Starting directory
command : The command, batch file or executable program to run
parameters : The parameters passed to the command
Options:
/MIN : Minimized
/MAX : Maximized
/WAIT : Start application and wait for it to terminate
/LOW : Use IDLE priority class
/NORMAL : Use NORMAL priority class
/HIGH : Use HIGH priority class
/REALTIME : Use REALTIME priority class
/B : Start application without creating a new window. In this case
^C will be ignored - leaving ^Break as the only way to
interrupt the application
/I : Ignore any changes to the current environment.
Options for 16-bit WINDOWS programs only
/SEPARATE Start in separate memory space (more robust)
/SHARED Start in shared memory space (default)
これを試してみてください。ウィンドウなしでプログラムを起動します。実際には1秒間点滅しますが、すぐに消えます。
start "name" /B myprogram.exe param1
"title"
オプションが重要です。プログラムのパスにスペースが含まれている場合は、引用符で囲む必要がある"title"
ため、失敗を回避するために追加する必要があります。
「スペースの問題」とローカルの依存関係を解決する方法:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
この質問に対する回答は既にたくさんありますが、重要なことを明確にするためにこれを投稿していますが、常にそうであるとは限りません:
Start "C:\Program Files\someprog.exe"
Start
最初の引用符のセットがWindowsタイトルであると実際に想定しているため、一部のWindowsバージョンでは問題が発生する可能性があります。したがって、最初にコメントまたは空白のコメントを二重引用符で囲むことがベストプラクティスです。
Start "" "C:\Program Files\someprog.exe"
または
Start "Window Title" "C:\Program Files\someprog.exe"
GUIからこれを行う私のソリューション:
実行するプログラムへのショートカットを作成します。
ショートカットのプロパティを編集します。
TARGET
フィールドをに変更します%COMSPEC% /C "START "" "PROGRAMNAME""
。
RUN
フィールドを最小化に変更します。
いいよ!それがどのように好きか見てください...
PS:プログラムパラメーターは、2つの最後の引用符の間に挿入できます。PROGRAMNAME
文字列は、ファイル名、相対パスまたは絶対パスのいずれかになります-あなたは絶対パスに入れた場合、ドライブ文字とセミコロンを消去し、その後、この意志の仕事は、それに関係なく、どのような文字のホストコンピュータの割り当てをサムドライブ.. 。(あなたが同じフォルダにショートカットを配置し、プログラムのファイル名の前に置く場合も、PROGRAMNAME
と%CD%
変数、パスは常に一致します。同じトリックをして使用することができますSTART IN
フィールド)。