実行ごとにから00
まで増加する変数が必要です。23
毎時ファイルをダウンロードする必要があるため、このパターンが必要です。0
to9
は 2 桁である必要があります。元。00, 01, 02, 03, 04 .. 10, 11, 12 .. 23, 00, 01 ..
上記を達成するために、私は以下のような単純なコードを返しました:
@echo off
set /p VAR=<Hourly_capture.txt
echo %var%
if /I %myvar% LSS 23 (SET /a myvar=%var%+1) else (SET myvar=00)
echo %myvar%
if /I %myvar% EQU 0 (echo 0 >Hourly_capture.txt) else echo %myvar% >Hourly_capture.txt
if /I %var% LSS 10 (if /I %var% NEQ 0 set Hourly_v=0%var%)
if /I %var% EQU 0 (SET Hourly_v=00) else (if /I %var% GTR 9 (SET /a Hourly_v=%var%))
echo %Hourly_v%
0
に初めて手動で入力した場所Hourly_capture.txt
。
これですべてが設定されました。これを端末(cmd)で実行するか、これをバッチスクリプトとして実行Hourly_v
して他の変数に取り込むことができます。
しかし、私の問題は、この変数を必要とするメイン スクリプトがあることです。このコードをスクリプトに入れるか、このデータを保持するbatファイルを呼び出すと、終了します。理由がわかりません。
例: 上記のロジックをバッチ スクリプトに含めることを検討しますHourly_logic.bat
。保持する別のスクリプトを実行すると
Echo " Iam running Horly_logic script to get the hour variable incremented"
Hourly_logic.bat
Echo "done"
上記のメインスクリプトは、実行するとすぐに出てきますHourly_logic.bat
。
上記の行をメインスクリプトに直接入れようとしても、スクリプトが4行目で終了することがわかりますif /I %myvar% LSS 23 (SET /a myvar=%var%+1) else (SET myvar=00)
.
ここで何が問題なのかを理解するのを手伝ってください。