我想要一个从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