今日の発見

Windowsのバッチファイル(.bat)で処理をスリープさせる方法を紹介

  • pingコマンドを使う方法
 C:\>type sleep.bat
 @ECHO OFF

 IF "%1" == "" (
  :FTIMEINPUT
  SET /PTIMEINPUT=スリープしたい時間を入力してください:
  IF "%TIMEINPUT%" == "" (
    CLS
    ECHO 時間が入力されていません
    GOTO FTIMEINPUT
  )
 ) ELSE (
  SET TIMEINPUT=%1
 )

 PING -n %TIMEINPUT% -l 1024 127.0.0.1 > NUL 2> NUL

 C:\>sleep.bat 2
 ... 2秒間スリープ...

 C:\>
    • 【結論】NICが無いと動かないのとスリープする時間が結構適当なのを除けば満足
  • WSHを使う方法
 C:\>type sleep.js
  // Sleep.js
  //  [引数]
  //    指定した場合 → 秒単位でスリープ
  //    指定しない場合→ 1秒スリープ
  // 2005/11/23

  var iTime = 1000;

  if (WScript.Arguments.length > 0)
  {
	 iTime = WScript.Arguments(0) * 1000;
  }

  WScript.Sleep(iTime);

 C:\>cscript sleep.js 5
 Microsoft (R) Windows Script Host Version 5.6
 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

 ... 5秒間スリープ...

 C:\>
    • 【結論】WSH使える環境なら大丈夫(IE4.0以上が入っているWindows環境)

正直どっちもどっちです。Sleep用のプログラムを一個作るのが良いかと。