trash-area.com ≫ blog ≫ プログラミング ≫ DOS ≫ WindowsXP標準機能だけでスリープ(コマンド)の実装
unix とかにある sleep コマンドです。
なんで windowsはついてないんでしょうね。
VCがあるならコレだけで済むところをどうにかしようというわけです。
int main(int argc, char* argv[]) { long wait = atol(argv[1]) * 1000; Sleep( wait ); return 0; }
DOSコマンドのみでやるとこんな感じ。
sleep.bat としてパスが通ったトコに配置して下さい。
@echo off for /l %%i in (1,1,%1) do @ping localhost -n 2 > nul
あとはコマンドラインなりなんなりから sleep 10 とやれば約10秒sleepしてくれます。
ぶっちゃけ 3秒(くらい)スリープさせたいだけならわざわざバッチファイルなんて作らなくても
ping localhost -n 2 > nul
ping localhost -n 2 > nul
ping localhost -n 2 > nul
と3行書けばいいだけなのでこれが一番好きです。
WSH(VBS)ならこんな感じ。
sleep.vbs として以下略。
call WScript.Sleep(WScript.Arguments(0)*1000)ただ、これの場合は cscript.exe で叩かないといけないのでちとめんどいです。
もしくは start /wait sleep 10 とか。
ただこっちのがスリープする時間は正確だと思います。
DOS+WSH(JScript)版。
sleep.bat として保存します。(sleep.js ではありません)
@set @temp=0/* @echo off cscript.exe //e:jscript //nologo "%~f0" %1 goto :eof */ WScript.Sleep(WScript.Arguments(0)*1000);
先ほどの wscript.exe で動かされるとスリープしてくれないのを解決します。
バッチファイルからテンポラリファイル作って~っていうのがいやなのでこんな感じに。
JScriptの条件コンパイルの構文を利用してDOSコマンド部分をコメントアウトしています。
で、バッチファイルの中で cscript で起動しなおしてあげています。