CMD または .bat ファイルをサイレント モードで実行するにはどうすればよいですか? CMD インターフェイスがユーザーに表示されないようにしたいと考えています。
11 に答える
次のフレーズを含めます。
@echo off
あなたのバットスクリプトの一番上にあります。
StackOverflow の質問で、バックグラウンドでバッチ ファイルを実行する方法を提案しました ( DOS ウィンドウは表示されません) 。
それはあなたの質問に答えるはずです。
ここにあります:
最初のスクリプトから、次の行で 2 番目のスクリプトを呼び出します。
wscript.exe invis.vbs run.bat %*
実際には、次のように vbs スクリプトを呼び出しています。
- [パス]\スクリプトの名前
- スクリプトに必要な他のすべての引数 (
%*
)
次に、invis.vbs はWindows Script Host の Run() メソッドを使用してスクリプトを呼び出します。
- intWindowStyle : 0 は「見えないウィンドウ」を意味します
- bWaitOnReturn : false は、最初のスクリプトが 2 番目のスクリプトの終了を待つ必要がないことを意味します
完全な invis.vbs スクリプトの質問を参照してください。
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
^
means "invisible window" ---|
Tammen のフィードバック後の更新:
DOS セッションを使用していて、別のスクリプトを「バックグラウンドで」起動したい場合は、単純な/b
(前述の同じ質問で詳しく説明されているように) で十分です。
を使用
start /b second.bat
して、最初のウィンドウを共有する最初のバッチ ファイルから非同期に 2 番目のバッチ ファイルを起動できます。
これは、DOS ウィンドウを開かずにバッチ ファイルを実行するための最も簡単で最短の解決策だと思います。一連のコマンドを定期的に実行するようにスケジュールする場合、非常に気が散る可能性があるため、DOS ウィンドウがポップアップし続けます。これが解決策です。 . VBS スクリプトを使用してバッチ ファイルを呼び出します...
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0
Set WshShell = Nothing
上記の行をエディターにコピーし、.VBS 拡張子を付けてファイルを保存します。それに応じて .BAT ファイル名とパスを編集します。
http://www.battoexeconverter.comから高度な BAT から EXE へのコンバーターを使用します。
これにより、バッチ ファイルを含む追加のバイナリを 1 つのスタンドアロンの完全にサイレントな EXE とそのフリーウェアに埋め込むことができます。
これを行うには、Bat To Exe Converter を使用します。
http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(直接ダウンロード リンクを選択)
1 - Bat to Exe Converter を開き、Bat ファイルを選択します。
2 - オプション メニューで [非表示アプリケーション] を選択し、[コンパイル] ボタンを押します。
終わり!
SilentCMDを試してください。これは、コマンドプロンプトウィンドウを表示せずにバッチファイルを実行する小さなフリーウェアプログラムです。
コマンド プロンプトをサイレント モードで実行したい場合は、簡単な vbs コマンドがあります。
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
cmd でサイレント モードで URLを開きたい場合は、次のコードを使用します。
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0)
'wait 10 seconds
WScript.sleep 10000
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"