1から順番にコマンドを実行する必要があったので、バッチファイルでがんばってみた。
仕様として
- 1から所定の数まで、順番にカウントアップする
- 大きな数(10000以上)までカウントアップする必要があるので、中断しても簡単に再開できるようにしたい
- 処理と処理の間に、5秒以上の適当な間隔(ランダム,乱数で決める)を持たせる
作成したバッチファイルはこんな感じ。
メインのバッチファイル
CODE:
-
@echo off
-
rem ファイルから番号を取得(取得した数字に+1)
-
FOR /F %%i IN (number.txt) DO set /a startnum=%%i+1
-
-
FOR /L %%i IN (%startnum%,1,10000) DO call command_proc.bat %%i
command_proc.bat
CODE:
-
@echo off
-
-
echo *--- 処理中 %1---*
-
echo %1> number.txt
-
rem [[[ ここに処理 ]]]
-
-
rem ウェイト処理
-
SET /a waittime=(%RANDOM%)%%15+5
-
echo %waittime%秒待ちます
-
ping localhost -n %waittime%> nul
-
echo.
-
echo.
【解説】
バッチファイルを2つに分けているのは、乱数を発生させるときのシード(乱数が偏らないようにするための初期値)がバッチファイル実行時に決定されるようなので、毎回Callしてバッチファイルを呼び出ししてる。
メインのバッチファイルの1行目
ファイルからスタートする番号を読み込む。ファイルには処理した番号が保存されているため、読み込んで+1したものをスタートの番号とする。
メインのバッチファイルの3行目
スタートの番号から順番(+1ずつ)増やす。これをオプションにして、バッチファイルを呼び出す。
command_proc.batの8行目
乱数を発生させる。ランダムで発生する最大数値が32767。そんなに待ち時間はいらないので、まって20秒くらい。最低の待ち時間として5秒必要なので、+5。なので、ランダムで発生する数値を15で割った余りと5秒を足して待ち時間にする。
command_proc.batの10行目
待ち時間用にpingを打つ。pingは指定したネットワークの状態を調査するコマンドで基本1秒ごとに状態を表示する。今回はネットワークの状態を知る必要はないので、自身の端末のIPアドレス(localhost)にpingを打っている。そして、表示もいらないので表示させない(nullに出力)



