특별한 날에 실행되는 배치 파일

특별한 날에 실행되는 배치 파일

한 번 클릭하면 일요일인 경우 .exe 파일을 시작하는 배치 파일을 어떻게 만듭니까?

다른 날에 .exe 파일을 실행하고 싶지 않습니다. 예를 들어 금요일이라면 그냥 자동으로 닫고 아무것도 하지 않기를 원합니다.

그리고 어떤 종류의 명령 프롬프트도 표시하지 않고 백그라운드에서 실행할 수 있다면 좋겠죠?

답변1

Task Scheduler이런 목적으로 사용할 수 있습니다 . 열기 Task Scheduler > Create Task 이제 열린 대화 상자에서 속성, 작업 실행 조건, 실행할 작업/응용 프로그램을 정의할 수 있습니다.

작업 스케줄러

답변2

date사실은 Windows가 DOS Batch에서 관리할 수 없는 고급 명령 기능(요일) 을 사용하고 싶다는 것입니다 .

date.exe이를 위해 Unix 세계에서 제공되고 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 Batch가 약간 쓸모가 없었습니다. 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

요구 사항에 맞는지 확인하려면 배치 파일에서 두 가지 사항을 변경해야 합니다.

  1. PATH_TO_FILE먼저, 7행에서 실행하려는 실행 파일의 경로를 변경해야 합니다 .
  2. 둘째, 10행을 변경해야 할 수도 있습니다. Sun실행 파일을 시작하려는 날짜의 처음 3글자로 변경해야 할 수도 있습니다(일요일에 실행하지 않으려는 경우).

관련 정보