ユーザーから何も見えない(ウィンドウがない、タスクバー名がない、.etc.など)バッチファイル(.bat)を実行する方法を探しています
そのために何かのプログラムを使いたいわけではなく、もっとすっきりしたものを探しています。VBScriptを使ったa solutionを見つけましたが、私もVBSを使うのはあまり好きではありません
154 Moayad Mardini 2009-10-29
Solution 1:
この1行のテキストをファイルinvisible.vbs
として保存します
CreateObject(“Wscript.Shell”).Run “””” & WScript.Arguments(0) & “”””, 0, False
任意のプログラムやバッチファイルを目に見えないように実行するには、このように使用します
wscript.exe “C:W\Wherevereverinvisible.vbs” “C:Aother Place\MyBatchFile.bat” “C:Aother PlaceMyBatchFile.bat”
引数のリストをパスオン/リレイするには、二重引用符を2つだけ使用してください
CreateObject(“Wscript.Shell”).Run “” & WScript.Arguments(0) & “”, 0, False
例としては、以下のようになります。Invisible.vbs "Kill.vbs ME.exe"
Solution 2:
コマンドラインツールを使ってプロセスを静かに起動させるには、Quiet, hidecon, hideexec のようにコマンドラインツールを使ってください
132 harrymc 2009-10-29
バッチファイルやコマンドファイルなどのファイルを隠すには….。Windows XPに組み込まれているIExpress.exe
ユーティリティを使用して、バッチファイルから.EXEを作成します。IExpress
を使用する際には、隠して実行するオプションにチェックを入れ、何も表示しないことをすべてのボックスにチェックを入れてください。.exeを作成した後、それを任意のrunコマンド・フォルダに配置すれば、それが表示されることはありません
31 Paul Cheselske 2012-06-29
use Cmdow は、NT4/2000/XP/2003 用の Win32 コマンドラインユーティリティで、ウィンドウの一覧表示、移動、サイズ変更、名前の変更、非表示/非表示、無効化/有効化、最小化、最大化、復元、アクティブ化/非アクティブ化、クローズ、強制終了などを行うことができます
パラメータを渡してバッチファイルを隠して実行します
cmdow /run /hid mybat arg1 “arg 2”
11 joe 2009-10-29
スクリプトを対話型にせずに at ジョブを介して実行します
at 11:00 script.bat
もう一つの解決策は、Pythonのようなものをインストールしても構わないのであれば、単純にスクリプトを作成してpythonw
(GUI操作用のリンク版)で実行するという方法があります。グラフィカルなAPIを使っていないので、ウィンドウは表示されません。単純にos.system()
の呼び出しを使えば、コマンドラインに文字列を打ち込むのと同じなので、バッチスクリプトを真似て実行してくれます
Example:
import os
os.system("tasklist > C:\tasks.txt")
os.system("ipconfig /all > C:\netinfo.log")
11 John T 2009-10-29
あなたのバッチファイルが一行に収まり、多くの文字数に収まる場合は、ランダムなディレクトリに置かれたフォルダ内を右クリックしてショートカットを使用し、ウィザードの残りの部分をスキップし、最後に作成されたショートカットを右クリックしてプロパティをクリックし、ターゲットの下に、あなたが通常バットファイルに入れるものを入力してください。そしてBobsはあなたの叔父!
Pros:
No Command Window
Ability to use an icon
Same Functionality of bat file
Cons:
Limited to one line, so many characters
11 Jack S 2013-01-13
VBScriptのソリューションは好きではありません
nircmd.exeを%systemroot%\system32
フォルダにダウンロードしてコピーし、このコマンドをバッチの最初の行に追加してください
nircmd.exe win hide ititle "cmd.exe"
または、title
コマンドでバッチタイトルをカスタム化してからtitle
コマンドでcmd
ウィンドウを隠さないようにします
title MyBatch
nircmd.exe win hide ititle "MyBatch"
9 BijaN-R 2014-05-12
ミニマム化して簡単に実行できます
start /MIN batch.cmd
7 Brad Gilbert 2009-10-29
Windows7を使用すると、「スケジュールされたタスク」コントロールパネルを使用して、指定されたパーミッションでバックグラウンドで実行されるバッチファイルを、「SYSTEM」アカウントであっても、目に見えない形でスケジュールすることができます。以下のスクリーンショットを参照してください
さらに、機能はそれほど多くはありませんが、コマンドラインから、’/interactive’オプションを使用せずに、”AT.exe “コマンドを使用して、このような見えないバッチスクリプトタスクを作成することもできます
6 djangofan 2013-01-09
また、AutoHotkey スクリプトを作成することもできます
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
6 endolith 2017-04-16
誰かが「サイレント」を実行する7-8の方法のリストを作ったようです
http://forums.techguy.org/dos-other/644932-solved-howto-run-batch-file.html
5 Rolnik 2011-01-26
優れた Bat To Exe Converter は、あなたの .bat
または .cmd
ファイルを .exe
ファイルに変換します
シンプルなUIになっています。XX Bit | Windows (Invisible)
オプションのExe Format
からExe Format
を選択することで、コンソールウィンドウを持たないことができます。また、アイコンの割り当てやパスワードの設定などのオプションもあります
5 BullyWiiPlaza 2016-10-30
C/C++からのもう一つの方法は、CREATE_NO_WINDOWフラグを指定してCreateProcess関数を使用することです。これには、ここでは示していませんが、多くの特別な力があります。これは system() や _spawn() ファミリーを置き換えるために必要な最低限のものです
STARTUPINFO si;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );
// Spawn creates a cmd.exe window. CreateProcess doesn't.
//if ( _spawnl( _P_WAIT, szFileNameBAT, szFileNameBAT, NULL ) ) {
if ( !CreateProcess( szFileNameBAT, szFileNameBAT, NULL, NULL, false,
CREATE_NO_WINDOW, NULL, NULL, &si, &pi ) ) {
MyErrorFunc( "CreateProcess( \"%s\" ): %d", szFileNameBAT, GetLastError() );
goto MyErrorHandling;
}
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
4 Swiss Frank 2017-06-19
それは重複していたので、別の投稿からここに私の答えを追加し、私は今、あなたが隠しバッチファイルを実行することができますどのように17の異なる答えがあるので、ここでこの解決策を参照してください。私は近い将来にどこかの時点でそのポストに私の答えを削除します
バッチスクリプトを作成し、その中にバッチロジックとコマンドを入れて、.VBS
拡張子を持つ新しいファイルを作成し、下記のロジック(下記の例)を使用して、.CMD
または.BAT
ファイルへのフルパスをPING -t <IPAddress>
などのコマンドと一緒に差し込むだけで、実行時にコマンドウィンドウを表示しないようにしてバッチを実行します
以下の例のロジックが C:\Folder\BatchFileName.cmd
を指定している場合は、手動で実行しているコマンドなどのバッチスクリプトを指すように変更してください
.VBS
ファイルを保存し、Task Scheduler
Windows7上でタスクをスケジューリングして、必要に応じて無期限のスケジュールで実行する問題
そうでなければ、.VBS
ファイルをダブルクリックするだけで、必要に応じて指し示すバッチファイルに入れた無限のPING
コマンドを実行することができます
注: 私はこれがこのスクリプトのロジックを得た場所だと信じていますが、バッチファイルが実行されたときにコマンドウィンドウが隠されていることを確認することで、ここで必要とする同じ目的のために確実に動作します サーバーの障害ソース
EXAMPLE VBS SCRIPT RUN COMMAND LINE BATCH HIDING CMD WINDOW
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Folder\BatchFileName.cmd" & Chr(34), 0
Set WinScriptHost = Nothing
3 Pimp Juice IT 2016-01-30
こちら 私は、外部ツールを使わずにバッチで隠し処理を開始する方法を知っているすべての方法をコンパイルしました
3 npocmaka 2012-10-12
nircmd この方法で成功しました
- リンク から nircmd.exe をダウンロードしてください
- .bat ファイルを作成します
- .bat ファイルの最初の行は次のようになります。
nircmd.exe win hide ititle "cmd.exe"
- 両方のファイルを選択し、winrarを使って自己解凍ファイルを作成します
- 一般」タブの「自動抽出ファイルを作成する」にチェックを入れます
- advance “タブで “autoextract “ボタンを選択します
- 新しいウィンドウがあり、”モード “タブを選択し、オプションを選択します。”すべてを隠す”
- タブの “更新 “を選択し、オプション “既存のファイルを上書き “を選択します
- general “タブを選択し、必要に応じて抽出先フォルダを定義し、”Excecute after extraction “ボックスに.batが抽出されるフルパスを記入してください。例:もし抽出フォルダを “c:\windows “と定義したら”c:\windows “と定義すると、抽出後に実行するフルパスは”c:\windowsfile.bat” (あなたの.batの名前がfile.batの場合)になります
- すべてのウィンドウで「受け入れる」をクリックします
今、あなたはそれをdobleクリックしてインストールした後、あなたの.exeファイルを持っているでしょう、あなたの.batは完全に隠されて実行されます
3 ZEUS 2014-09-24
私はすでにこれに答えたにもかかわらず、ここでは別のアプローチです。windowMode.batとgetCMDPid.bat(両方とも.net
のコードが含まれています)しかし、2つの追加スクリプトが必要になります。ここではどのように使用することができます
@echo off
call getCmdPid
call windowMode -pid %errorlevel% -mode hidden
echo this should be written into log despite the cmd window is hidden>log
echo ending the log>>log
exit
3 npocmaka 2017-03-09
私はこのような仕事をするためにRunAppを作成し、また、私の生産環境でそれを使用しています
下のようなコンフィグ
file: config.arg
:style:hidden
MyBatchFile.bat
arg1
arg2
そして、代わりにrunapp.exe
を起動します
2 James Yang 2018-06-21
cmdow /run /hid "file.extention" arg1 "arg 2"
1 malak 2010-06-14
特別なことをする必要はありません
Windows サービスからバッチファイルを実行している場合、サービスの「サービスにデスクトップとの対話を許可する」オプションを有効にしない限り、バッチファイルはデフォルトで非表示になっているはずです
1 sgmoore 2011-07-02
私はこれを解明しようとし始めましたが、一度も成功しませんでした。これは私が得たのと同じくらい近かった
@echo off
if not defined PIL (
set PIL=1
start /min "" %~0
exit /b
)
TITLE Hello World
echo Hello world!
pause>nul
0 djangofan 2012-12-17
エクスプローラのコンテキストメニューから呼び出されたバッチファイルのウィンドウを非表示にする必要があり、また、パラメータに引用符を追加する必要がありました。どの答えもうまくいかなかったので、自分なりの解決策を追加します
エクスプローラーのコンテキストメニューのレジストリ「コマンド」にこれがありました
cmd /c C:\mypath\myprogram.bat "%1"
だから、それを置き換えるために、私はこのようなvbsを作成しなければなりませんでした
WScript.CreateObject ("WScript.shell").run "cmd /c C:\mypath\myprogram.bat """ & WScript.Arguments(0) & """", 0, False
C:\mypath\myscript.vbs
のような場所に保存して、レジストリ上でこのように呼び出します
wscript "C:\mypath\myscript.vbs" "%1"
.bat パスにスペースを入れることはできないので、8.3 のファイル名に置き換えてください。ですから、例えば C:\Program Files\myprogram.bat
は C:\Progra~1\myprogram.bat
として参照されなければなりません。8.3 のファイル名を見るには dir /x
を使用します
0 bortao 2018-05-05
私も同じ問題を抱えていましたが、解決しました
Shell("filehere" & "parametersforbatchfilehere", vbHidden)
0 Alan Panayotov 2013-06-07
Using Powershell:
Start-Process -FilePath "Batch file path" -ArgumentList "args" -WindowStyle Hidden
0 Wasif Hasan 2020-09-17
これはwindows 8で動作します(他にもあるかもしれません)
- 通常通りバッチファイルを作成します
- バッチファイルのショートカットを作成します
- ショートカット>プロパティを右クリックします
- Click Layout
- システム位置のウィンドウを表示する」のチェックを外す
- 左位置TP-1000を設定します
click apply
ショートカットをクリックすると実行されますが、表示されません。)
-1 Andrew 2014-08-15