728x90
1. timeout
batch 스크립트 대화식(interactive)으로 동작하는 환경에서 설정한 시간값대로 아무 문제 없시 잠시 멈춘다.
@echo off
echo Hello, World
:: timeout /t -1
timeout 5
echo World is Beautiful
exit 0
a.bat 는 "Hello, World" 를 출력하고 5초를 기다린 후, "World is Beautiful" 을 출력하고 있다.
그런데, timeout 의 문제는 비대화식(non-interactive) 환경에서는 시간 설정값은 무시되고 그 다음 라인이 진행된다.
프로그램 내에서 외부 명령어 호출하는 다음 예제를 실행하면 5초후에 결과가 나오는게 아니라, 실행 즉시 a.bat 결과가 출력된다.
String[] array = {"cmd", "/c", "a.bat"};
Process process = Runtime.exec(array);
process.waitFor(20, TimeUnit.SECONDS);
2. ping
ping 명령어로 로컬 주소인 127.0.0.1 로 1초마다 5번 보내는 방법으로 blocking 이 가능하다.
@echo off
echo Hello, World
ping 127.0.0.1 -n 5 > nul
echo World is Beautiful
exit 0
3. powershell Sleep
@echo off
echo Hello, World
powershell Start-Sleep -s 5
:: powershell Sleep 3
echo World is Beautiful
exit 0
윈도우 PowerShell 내 명령어인 "Start-Sleep" 을 이용하면 멈추기 기능이 가능하다.
참고
https://stackoverflow.com/questions/1672338/how-to-sleep-for-five-seconds-in-a-batch-file-cmd
'Engineering > Windows' 카테고리의 다른 글
yt-dlp 실행 시 "ERROR: Could not copy cookie database." 에러 확인 (0) | 2025.01.03 |
---|---|
윈도우 cron 등록 (1) | 2024.01.22 |
youtube-dl 대체 프로그램 on windows (1) | 2023.12.05 |
heic heif 이미지 탐색기에서 보기 on Windows (3) | 2023.12.02 |
tail -f 동일 명령어 on Windows (1) | 2023.12.01 |