MENU

バッチファイル「.bat」または「.cmd」を最小化した状態で実行するプログラム

今回は、バッチファイル「.bat」または「.cmd」を実行した際に表示されるコマンドプロンプトのウィンドウを、最小化または非表示で実行するプログラム「CMD_MinRun.exe」を紹介します。

バックグラウンドでバッチファイルを実行したい場合などにご利用ください。

目次

「CMD_MinRun.exe」の仕組みと使用方法

仕組み

  • 「CMD_MinRun.exe」は直接実行することはできません
  • 拡張子「.bat」または「.cmd」以外のファイルを実行することはできません

プログラムの実行時に、プログラムに渡されたコマンドライン引数を読み取り、パラメータの数が「0」である(引数がない)場合は直接実行したと判断し、メッセージを表示してプログラムを終了します。

このプログラムは直接実行することはできません。

パラメータの数が「0」以外であれば(引数があれば)、正規表現を使い、引数のファイルが拡張子「.bat」または「.cmd」であるかを判断し、拡張子が違えばメッセージを表示してプログラムを終了します。

このプログラムは、拡張子が「.bat」または「.cmd」以外は実行できません。

パラメータの数が「0」以外であり、拡張子が「.bat」または「.cmd」であればバッチファイルを最小化または非表示の状態で実行します。

※プログラムはバッチファイルを実行後すぐに終了します。

使用方法

1.バッチファイルを左クリックして離さず、「CMD_MinRun.exe」の上に持って行きクリックを離します。(ドラッグ&ドロップ)

2.ファイル名を指定して実行やコマンドプロンプト、タスクスケジューラなどからコマンドを実行する。

例えば、ドキュメントフォルダーにある「Bacup.bat」を実行したい場合は、”「CMD_MinRun.exe」のパス”、半角スペース、”実行したいバッチファイル”、というように書きます。

"%USERPROFILE%\Documents\CMD_MinRun.exe" "%USERPROFILE%\Documents\Bacup.bat"
コマンドプロンプト

「CMD_MinRun.exe」の場所はバッチファイルと同じ場所でなくても構いませんが、必ず各パスをダブルクォーテーションで囲んでおきましょう。

タスクスケジューラに登録する場合は、「プログラム/スクリプト(P):」に「CMD_MinRun.exe」のパスを、「引数の追加 (オプション)(A):」にバッチファイルのパスを指定してください。

タスクスケジューラ

例えば、定期的にバックグラウンドで何かのファイルをバックアップしたいときなどに、作業中にコマンドプロンプトのウィンドウが表示されては困るという場合に邪魔にならず便利です。

2024/04/26 Ver 1.0.0.1 :

オプション「/h」を追加しました。オプション「/h」を使うと、ウィンドウを非表示の状態で実行することができます。

例:

"%USERPROFILE%\Documents\CMD_MinRun.exe" "%USERPROFILE%\Documents\Edge_Profile_Bacup.bat" /h

「CMD_MinRun.exe」のソースコードとダウンロード

ソースコード(Ver 1.0.0.0)

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=CMD_MinRun.exe
#AutoIt3Wrapper_Res_Description=バッチファイルを最小化した状態で実行します。
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_ProductName=CMD_MinRun
#AutoIt3Wrapper_Res_ProductVersion=1.0
#AutoIt3Wrapper_Res_CompanyName=©2024 wenbang https://windows-waza.com/
#AutoIt3Wrapper_Res_LegalCopyright=©2024 wenbang https://windows-waza.com/
#AutoIt3Wrapper_Res_LegalTradeMarks=CMD_MinRun.exe
#AutoIt3Wrapper_Res_Language=1041
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

If $CmdLine[0] = 0 Then Exit MsgBox(16 + 262144, "エラー", "このプログラムは直接実行することはできません。", 0)

If StringRegExp($CmdLine[1], "\.bat$|\.cmd$", 0) Then
    Run(@ComSpec & ' /c "' & $CmdLine[1] & '"', "", @SW_MINIMIZE)
Else
    Exit MsgBox(16 + 262144, "エラー", "このプログラムは、拡張子が「.bat」または「.cmd」以外は実行できません。", 0)
EndIf

ソースコードの解説

Autoit の $CmdLine には、プログラムに渡されたコマンドライン引数のデータが入っています。

$CmdLine[0] にはパラメータの数、$CmdLine[1] には「CMD_MinRun.exe」で実行したプログラムのパスが代入されます。

次のコードでは、パラメータの数をチェックしており、パラメータ数が「0」の場合はプログラムを終了し、「このプログラムは直接実行することはできません。」というメッセージボックスを表示します。

If $CmdLine[0] = 0 Then Exit MsgBox(16 + 262144, "エラー", "このプログラムは直接実行することはできません。", 0)

次のコードは、「CMD_MinRun.exe」で実行したファイルのパスの拡張子(後ろの 4文字)が「.bat」または「.cmd」であるかを正規表現(StringRegExp)でチェックしています。

もしも拡張子が「.bat」または「.cmd」であれば、バッチファイルを最小化した状態で実行します。

拡張子が違う場合はプログラムを終了し、「このプログラムは、拡張子が「.bat」または「.cmd」以外は実行できません。」というメッセージボックスを表示します。

If StringRegExp($CmdLine[1], "\.bat$|\.cmd$", 0) Then
    Run(@ComSpec & ' /c "' & $CmdLine[1] & '"', "", @SW_MINIMIZE)
Else
    Exit MsgBox(16 + 262144, "エラー", "このプログラムは、拡張子が「.bat」または「.cmd」以外は実行できません。", 0)
EndIf

ダウンロード

※自作ソフトについて(必ずお読みください)

2024/04/26 Ver 1.0.0.1:

オプション「/h」を追加しました。オプション「/h」を使うと、ウィンドウを非表示の状態で実行することができます。

対象ファイル:「CMD_MinRun.exe」(Ver 1.0.0.1)
ハッシュ値(SHA256):63fe1930ece344a242dce4098ff1bda4fa5f360693d70cd1639d555145e49c2e

CMD_MinRun.zip(Ver 1.0.0.1)

Microsoft Edge のプロファイルを定期的に自動でバックアップする方法

この記事が役立ったと感じたら、ぜひシェアをお願いします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ニックネーム: wenbang
趣味: 格闘技関連の動画鑑賞
座右の銘: 「為せば成り、為さねば成らぬものなるを、成らぬは、おのが為さぬためなり」

Windows 技!では、Windows 10/11 の問題解決をメインに、PC をもっと便利にするカスタマイズ方法なども紹介しています。少しでもみなさまのお役に立てれば幸いです。

コメント

コメントする


目次