【发布时间】:2015-12-04 16:37:57
【问题描述】:
我正在尝试创建一个 1 行代码,它将所有变量加起来很难用文字解释,但这里是代码的一小部分
H = hours
M = Minutes
Thr = Total Hours
Tmin= Total Minutes
Call data.bat
Rem data.bat is all the h1,m1,h2,m2,h3,m3... info
Rem Example Data
H1=3
M1=53
H2=4
M2=20
Set num=1
:refresh
if %H%num%% GTR 0 set /a Thr=%H%num%%+%Thr%
if %M%num%% GTR 0 set /a Thr=%M%num%%+%TMin%
if %M%num%% EQU 0 Goto :total
set /a number=%number%+1
goto :refresh
:Total
set /a Total=((%Thr%*60)+%Tmin%)
set /a TotalHour=(%Total%/60)
set /a TotalMin=(-%TotalHour%*60)+%Total%
if %Totalmin% GEQ 0 if %Totalmin% LEQ 9 set Totalmin=0%Totalmin%
Echo Duration : %TotalHour%hr %TotalMin%min
小时没有如果 0 转到总计,因为有时可能有 0 小时但 ## 分钟 关于如何做到这一点的任何想法? 按原样运行它给了我
分步操作
if %h%num%% gtr 0 set /a Thr=%h%num%%+%thr%
If %h1% gtr 0 set /a thr=%h1%+%thr%
If 3 gtr 0 set /a thr=**3+%thr%
if 3 gtr 0 set /a thr=3+1
【问题讨论】:
-
如果您尝试使用 2 个其他 var 的值设置 1 个 var 或显示 2 个 var,请使用正确数量的
%编写它。 IE。if %H%%num% ...和set /a Thr=%H%%num%+%Thr%代替。每个变量在 2%. -
如果
Thr=2 H3=4 Num=3那么我想要一种方法,这样我就可以更改if %H%num%% GTR 0 set /a Thr=%H%num%%+%Thr%所以它读取If 4 GTR 0 set /a THR=4+2 -
@Paul:OP 没有尝试将 1 个变量设置为 2 个其他变量的值,也没有显示 2 个变量,而是访问一个 数组元素:
set /a Thr=!H%num%!+%Thr%
标签: variables batch-file cmd dos