티스토리 뷰
728x90
cmd에서는 timeout으로 초 단위 딜레이만 가능합니다.
그래서 배치파일을 작성하다 보면 0.5초 단위로 딜레이 하는 방법을 알고 싶어 하는 경우가 생길 겁니다.
이 글에서 0.5초 단위뿐만 하니라 0.001초 단위로 딜레이 하는 방법을 알려드리겠습니다.
배치파일 작성
0.5초 딜레이를 예시로 작성 했습니다.
echo WScript.Sleep 500 > %temp%\sleep.vbs & wscript %temp%\sleep.vbs | more & del /q %temp%\sleep.vbs
500 이 부분을 바꿔주시면 됩니다.
이때 단위는 ms(밀리세컨드)라서 1000이 1초 이고, 500가 0.5초입니다.
코드 설명
한 줄로 모든 작업을 하기 위해 코드가 길러졌습니다. &로 분리하여 설명하겠습니다.
echo WScript.Sleep 500 > %temp%sleep.vbs
temp폴더에 vbs파일을 만듭니다.
wscript %temp%\sleep.vbs | more
만든 vbs파일을 실행시키고 끝날 때까지 기다립니다.
del /q %temp%\sleep.vbs
만든 vbs파일을 삭제합니다.
오차
오차가 얼마나 나는지 보기 위해 현재 시간을 출력하도록 해보겠습니다.
@echo off
::현제 시간을 출력 합니다.
echo %time%
echo WScript.Sleep 500 > %temp%sleep.vbs & wscript %temp%\sleep.vbs | more & del /q %temp%\sleep.vbs
::0.5초를 딜레이 한 다음 다시 현제 시간을 출력 합니다.
echo %time%
pause
::현제 시간을 출력 합니다.
echo %time%
echo WScript.Sleep 500 > %temp%sleep.vbs & wscript %temp%\sleep.vbs | more & del /q %temp%\sleep.vbs
::0.5초를 딜레이 한 다음 다시 현제 시간을 출력 합니다.
echo %time%
pause
실행 결과입니다.(세티세컨드는 백분의 1초인데, 저 부분을 어떻게 써야 되는지 몰라서 저렇게 섰어요..;)
오차는 0.11초입니다. 여러 번 해봤는데, 약 0.1초 정도 차이가 나는군요.
그래서 거의 정확한 0.5초를 구사하려면 400으로 값을 넣어야 할 것 같습니다.
반응형
'배치파일 / CMD > 배치파일' 카테고리의 다른 글
[배치파일]프로그램 실행후 종료까지 기다리기 (0) | 2020.10.20 |
---|---|
[배치파일] CMD창을 항상 위에 배치하는 방법 (2) | 2020.09.07 |
[배치파일]개행없이 글 출력하는 방법 (0) | 2020.04.16 |
[배치파일]키보드값 입력 받기(특수키 포함) (0) | 2020.04.05 |
[배치파일]모니터 해상도 알아내기 (0) | 2020.03.19 |
댓글