web-dev-qa-db-ja.com

「コマンドウィンドウ」を起動せずにバッチファイルを実行する方法

Windows XPでは、ショートカットを使って「黒いウィンドウ」なしでバッチ(.batまたは.cmd)ファイルを実行できますか?

127
dugres

"testing.bat"をバッチファイルの名前に置き換えた後、次のスクリプトをwscriptとして保存します(たとえばhidecmd.vbs)。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

oShell.Runの2番目のパラメータはプログラムのウィンドウの外観を示すintWindowStyle値で、0の値は隠しウィンドウ用です。

参照はこちら http://msdn.Microsoft.com/ja-jp/library/d5fk67ky.aspx

85
Shaji

これはShajiの答えを単純化したものです。このような VBScript (.vbs)スクリプトを使用してバッチスクリプトを実行できます。

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

これにより、コマンドウィンドウが表示されずにバッチファイルが実行されます。

43
greatwolf

"Use Windows Scripting"という答え(これは既に組み込まれているので私が一番だと思う)を拡張するために、単一のラッパースクリプトを使用し、 "実際の"バッチファイルの名前をパラメーターとして渡す方法を説明します。追加のパラメータがバッチファイルに渡されます。

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

だから例えば上記のファイルをどこかにNoShell.vbsとして保存してから、以下を呼び出します。

NoShell.vbs c:\foo\my_batch_file.bat

最後に、.vbsファイルを理解できない場所(Visual Studioの "External Tools"など)からこれを実行する場合は、vbsファイルを最初のパラメータとしてC:\Windows\System32\wscript.exeを呼び出し、 2番目としてあなたのバッチファイル。

20
Toby J

ショートカットのプロパティを変更して最小化して実行することができます。

完全に見えない状態で実行するには、Windows Scriptingのようなものが必要です。

9
ale

/ Bオプションを指定して start を使用します。例えば:

@echo off
start /B go.bat
8
zaf

あなたは AutoIt のようなウィンドウスクリプトを使うことができます。

例として、これをAutoItスクリプトエディタに書くだけです。それはかなり簡単です

Run("C:\test\batchfile.bat", "", @SW_HIDE)

ループで実行したい場合は、

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

.exeとしてコンパイルしてください - これで完了です。


同様に、 AutoHotkey では、

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide 
6
Adrian Yeoh

無料のGPLオープンソース「隠しプロセスの作成」

http://www.commandline.co.uk/chp/

Microsoft Security Essentialsや、おそらく他のほとんどのウイルス/マルウェアスキャナーは、実行可能ファイルchp.exeをウイルスとして扱います。ウイルスと同様に、指定したプログラムがウィンドウやタスクバーボタンの表示から隠されるためです。

ウイルスではありません。たとえば、ターゲットプロセスがタスクマネージャに表示されるのを隠しません。そしてもちろん、ソースコードも含まれているので、それは非常に小さく、あなたがそれを与えたプログラムなら何でも実行する以外に何もしないことがわかります。

含まれているchp.exeが本当にそのソースから構築されたものであることを信頼する必要はありません。あなたは先に進んで含まれているchp.exeを捨ててソースからあなた自身のものをコンパイルすることができます、そしてそうするために必要なすべてのツールは無料でダウンロード可能です。


.batファイルまたは.cmdファイルへのショートカットを作成して、ショートカット、[プロパティ]、[ショートカット]タブ、[実行:最小化]を右クリックすることもできます。スケジュールされたタスクでは、次に直接.bat/.cmdファイルの代わりにショートカットを使用します。これはウィンドウがポップアップするのを防ぎますが、タスクバーボタンはまだ表示されます。

6
bkw

隠しスタート を使う(20ドル)

隠しスタート - コンソールウィンドウやUACプロンプトなしでアプリケーションとバッチファイルを実行

コンソールアプリケーションとバッチファイルは、Windowsの起動時またはスケジュールに従って定期的に実行されます。これの主な不便は、各アプリケーションが画面上で点滅するコンソールウィンドウを開くことです。 Hidden Start(またはHstart)は、バックグラウンドでウィンドウを表示せずにコンソールアプリケーションとバッチファイルを実行し、Windows 7およびVistaでUAC特権の昇格を処理し、複数のコマンドを並列または同期で開始することを可能にする軽量のコマンドラインユーティリティです。 。

enter image description here

5
Kyle A

余分なプログラムを使用せずに簡単な解決策。

  1. 実行したいバッチファイルを作成してテストします。
  2. ショートカットを作成してください。
  3. ショートカットのプロパティを編集します。[ショートカット]タブで、[最小化実行]を選択します。それにホットキーを割り当てれば完了です。

がんばろう!

4
Willem