HOWTO · batch

배치 파일에서 X초 동안 절전 또는 대기하는 방법

배치 파일을 몇 초 동안 일시 중지하는 방법을 알아보세요. 내장된 timeout 명령을 사용하거나, timeout을 사용할 수 없는 시스템에서는 ping 우회 방법을 사용합니다.

이 페이지의 내용

배치 파일로 작업할 때 특정 기간 동안 실행을 일시 중지해야 할 필요가 있을 수 있습니다. 프로세스가 완료되기를 기다리거나 사용자 상호 작용을 위해 단순히 지연을 추가하는 경우든, 절전 또는 대기 기능을 구현하는 방법을 아는 것은 필수적입니다.

이 기사에서는 배치 파일에서 이를 달성하기 위한 두 가지 효과적인 방법, 즉 timeout 명령과 ping 명령의 사용을 살펴보겠습니다. 각 방법은 간단하고 스크립트에 쉽게 통합할 수 있어 실행 흐름을 더 잘 제어할 수 있습니다. 이러한 솔루션을 자세히 살펴보고 배치 파일에서 시간을 효과적으로 관리하는 방법을 알아보겠습니다.

timeout 명령 사용

timeout 명령은 배치 파일을 지정된 초 수만큼 일시 중지하는 간단한 방법입니다. Windows에 내장되어 있으며(Vista부터) 사용하기 쉽습니다. /t는 대기할 초 수를 지정하며, -1(키를 누를 때까지 무한정 대기)부터 99999까지 지정할 수 있습니다. 구현 방법은 다음과 같습니다.

@echo off
echo Waiting for 10 seconds...
timeout /t 10
echo Done waiting!

출력:

Waiting for 10 seconds...
Done waiting!

이 예제에서는 배치 파일이 10초 동안 대기 중임을 나타내는 메시지를 표시합니다. timeout /t 10 명령은 화면에서 카운트다운하면서 실행을 10초 동안 일시 중지합니다. 대기 후에는 “Done waiting!“을 출력하여 일시 중지가 종료되었음을 나타냅니다. /t 뒤의 값을 변경하여 초 수를 조정할 수 있습니다.

기본적으로 아무 키나 누르면 대기가 조기에 종료됩니다. /nobreak — timeout /t 10 /nobreak — 를 추가하면 키 누름을 무시합니다(Ctrl+C는 여전히 스크립트를 중지합니다). 알아야 할 제한 사항이 하나 있습니다. timeout은 스케줄러나 다른 프로그램 등에 의해 스크립트의 표준 입력이 리디렉션된 경우 실행할 수 없습니다. 그런 경우에는 대기하는 대신 오류를 출력하는데, 그럴 때 아래의 ping 우회 방법이 유용합니다.

ping 명령 사용

배치 파일에 지연을 도입하는 또 다른 방법은 ping 명령을 사용하는 것입니다. 이 명령은 주로 네트워크 진단에 사용되지만, 각 ping 응답이 돌아오는 데 약 1초가 걸리므로 일시 중지를 만드는 데 재활용할 수 있습니다. 방법은 다음과 같습니다.

@echo off
echo Waiting for 5 seconds...
ping 127.0.0.1 -n 6 > nul
echo Done waiting!

출력:

Waiting for 5 seconds...
Done waiting!

이 예제에서는 배치 파일이 계속 진행하기 전에 5초 동안 대기합니다. ping 127.0.0.1 -n 6 명령은 로컬호스트(127.0.0.1)에 6번의 ping을 보냅니다. 첫 번째 응답은 즉시 돌아오고 그 이후의 각 응답은 약 1초가 걸리므로, 6번의 ping은 약 5초의 일시 중지를 만듭니다 — N초를 대기하려면 N+1번 ping하세요. > nul 부분은 ping 명령의 출력을 억제하여 콘솔을 깔끔하게 유지합니다. 이 방법은 실제 절전 명령이라기보다는 우회 방법이지만, 이전 버전의 Windows나 입력이 리디렉션된 경우와 같이 timeout을 사용할 수 없거나 실행할 수 없는 곳에서도 작동합니다.

결론

요약하면, 배치 파일에서 절전하거나 대기하는 방법을 아는 것은 스크립팅 능력을 향상시킬 수 있는 귀중한 기술입니다. timeout 명령은 간단하고 전용으로 만들어진 옵션이며, ping 명령은 timeout을 사용할 수 없을 때 실행 가능한 대안을 제공합니다. 이러한 방법을 구현하면 실행 흐름을 효과적으로 관리하고 배치 스크립트의 사용자 경험을 개선할 수 있습니다. 작업을 자동화하든 대화형 스크립트를 만들든, 이러한 기술은 유용할 것입니다.

FAQ

  1. 배치 파일이란 무엇입니까?
    배치 파일은 Windows의 명령줄 인터프리터에 의해 순차적으로 실행되는 일련의 명령을 포함하는 텍스트 파일입니다.

  2. 이전 버전의 Windows에서 배치 파일에 절전을 사용할 수 있습니까?
    예, timeout 명령을 사용할 수 없는 경우 ping 명령을 우회 방법으로 사용할 수 있습니다.

  3. timeout 명령을 사용하여 얼마나 오래 대기할 수 있습니까?
    timeout 명령은 최대 99999초까지 대기할 수 있으며, 이는 약 27.7시간에 해당합니다. -1 값은 키를 누를 때까지 대기합니다.

  4. 시간 제한을 취소할 방법이 있습니까?
    예, 시간 제한 기간이 끝나기 전에 아무 키나 눌러 대기를 취소할 수 있습니다 — 단, 명령이 /nobreak로 시작된 경우는 제외되며, 이 경우 Ctrl+C만 중지할 수 있습니다.

  5. 이러한 방법을 배치 파일이 아닌 다른 스크립트에서 사용할 수 있습니까?
    이는 Windows 명령 인터프리터의 명령이므로, 배치 파일을 포함하여 cmd가 이를 실행하는 모든 곳에서 작동합니다. Unix 셸에서는 사용할 수 없습니다.