我想要一個從00
到23
的變量。在批處理文件中運行批處理腳本
我必須每小時下載一次小時文件,這就是爲什麼我需要這種模式。 0
到9
應該是兩位數字。防爆。 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)
。
請幫我理解這裏出了什麼問題。
你不需要編寫自己的調度程序,它已經完成了很多次。 http://technet.microsoft.com/en-us/library/bb726974.aspx – spydon