windows – 完全に隠された方法でバッチファイルを実行する

batch-file command-line windows

ユーザーから何も見えない(ウィンドウがない、タスクバー名がない、.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」アカウントであっても、目に見えない形でスケジュールすることができます。以下のスクリーンショットを参照してください

enter image description here

さらに、機能はそれほど多くはありませんが、コマンドラインから、’/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 SchedulerWindows7上でタスクをスケジューリングして、必要に応じて無期限のスケジュールで実行する問題

そうでなければ、.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 この方法で成功しました

  1. リンク から nircmd.exe をダウンロードしてください
  2. .bat ファイルを作成します
  3. .bat ファイルの最初の行は次のようになります。nircmd.exe win hide ititle "cmd.exe"
  4. 両方のファイルを選択し、winrarを使って自己解凍ファイルを作成します
  5. 一般」タブの「自動抽出ファイルを作成する」にチェックを入れます
  6. advance “タブで “autoextract “ボタンを選択します
  7. 新しいウィンドウがあり、”モード “タブを選択し、オプションを選択します。”すべてを隠す”
  8. タブの “更新 “を選択し、オプション “既存のファイルを上書き “を選択します
  9. general “タブを選択し、必要に応じて抽出先フォルダを定義し、”Excecute after extraction “ボックスに.batが抽出されるフルパスを記入してください。例:もし抽出フォルダを “c:\windows “と定義したら”c:\windows “と定義すると、抽出後に実行するフルパスは”c:\windowsfile.bat” (あなたの.batの名前がfile.batの場合)になります
  10. すべてのウィンドウで「受け入れる」をクリックします

今、あなたはそれをdobleクリックしてインストールした後、あなたの.exeファイルを持っているでしょう、あなたの.batは完全に隠されて実行されます

3  ZEUS  2014-09-24


私はすでにこれに答えたにもかかわらず、ここでは別のアプローチです。windowMode.batgetCMDPid.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.batC:\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で動作します(他にもあるかもしれません)

  1. 通常通りバッチファイルを作成します
  2. バッチファイルのショートカットを作成します
  3. ショートカット>プロパティを右クリックします
  4. Click Layout
  5. システム位置のウィンドウを表示する」のチェックを外す
  6. 左位置TP-1000を設定します
  7. click apply

  8. ショートカットをクリックすると実行されますが、表示されません。)

-1  Andrew  2014-08-15


タイトルとURLをコピーしました