特別な日に実行されるバッチファイル

特別な日に実行されるバッチファイル

日曜日であれば、クリックすると .exe ファイルを起動するバッチ ファイルを作成するにはどうすればよいですか?

別の日の場合は、.exe ファイルを実行したくありません。たとえば、金曜日の場合は、自動的に閉じて何もしないようにします。

また、コマンドプロンプトを表示せずにバックグラウンドで実行できれば便利ですか?

答え1

Task Schedulerこの目的のために使用できます。Task Scheduler > Create Task 開く 開いたダイアログで、プロパティ、タスクを実行するための条件、実行するジョブ/アプリケーションを定義できるようになりました。

タスクスケジューラ

答え2

date実際のところ、Windows が DOS バッチで管理できないコマンドの高度な機能 (曜日)を使用したいと考えています。

このため、私はdate.exeUnix の世界から来て Windows で動作するサードパーティのバイナリ ファイルを使用します。UnxUtils(これは、Windows 上で実行される一般的な GNU Unix ユーティリティのコレクションです)。

ダウンロードはこちらからここ(UnxUtils.zip)。

次にそれを解凍し、date.exe

次に、次のようなバッチ ファイルを作成します (date.exeが にあると仮定しますc:\)。

@ECHO OFF
REM Sunday is 0
for /f "delims=" %%a in ('c:\date.exe +%%w') do set DayOfWeek=%%a
if %DayOfWeek% == 0 (
  cmd /c c:\path\to\exe\file.exe
) else (
  echo Do Nothing
)

これを Windows のスタートアップ フォルダーに配置すると、世界中のどこにいても、すべてのバージョンの Windows で動作します。


また(ずっといい)当時、DOS バッチは少し時代遅れでした。Windows 8 について話しているのであれば、Powershell を検討します (必要に応じてバッチ ファイルから呼び出すことができます)。

$a = Get-Date
if($a.DayOfWeek -eq "Sunday") {
    cmd /c c:\path\to\exe\file.exe
}

ここでは、サードパーティのバイナリ ファイルは必要ありません。Powershell は強力です ;)

答え3

によるとここ組み込みのコマンドプロンプトでバッチファイルを実行し、ウィンドウを表示しないことは不可能です。

それで、最終的に私はこれページにアクセスし、その情報を使用して、必要な処理を実行するバッチ ファイルを作成します。バッチ スクリプトは、時刻をチェックします。日付が正しくない場合は、コマンド プロンプトが赤く点滅し、終了します。日付が正しい場合は、緑色に点滅し、終了時にプログラムを起動します。

上記の段落の内容はすべて 1 秒以内に発生するため (コンピューターの速度によって異なります)、あまり目立ちません。

@echo off

mode con: cols=16 lines=6

:: The file you want to launch.
set FILE=PATH_TO_FILE

:: The day you want to launch the file on.
set DAY=Sun

for /F "tokens=1 delims= " %%A in ('Date /t') do ( Set TODAY=%%A )
if %TODAY% == %DAY% goto START

:STOP
color 47
goto END

:START
color 27

start "" "%FILE%"
goto END

:END
exit

ニーズに合うようにするには、バッチ ファイル内の 2 つの点を変更する必要があります。

  1. PATH_TO_FILEまず、 7 行目を、起動する実行可能ファイルのパスに変更する必要があります。
  2. 次に、10 行目を変更する必要があるかもしれません。Sunこれは、実行可能ファイルを起動する曜日の最初の 3 文字に変更する必要があるかもしれません (日曜日に起動したくない場合)。

関連情報