0

実行ごとにから00まで増加する変数が必要です。23

毎時ファイルをダウンロードする必要があるため、このパターンが必要です。0to9は 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).

ここで何が問題なのかを理解するのを手伝ってください。

4

1 に答える 1