Board logo

标题: 批處理.! 時間轉化.(9909s-->02:30:09)! 請教() [打印本页]

作者: piziliu2004     时间: 2006-6-6 17:08    标题: 批處理.! 時間轉化.(9909s-->02:30:09)! 請教()

@echo off
setlocal enabledelayedexpansion
set /a %sum2%=9009
set /a rhour=(%sum2%)/3600
set /a rmin=(%sum2%)%3600/60
echo %rhour% %rmin%
endlocal
作者: piziliu2004     时间: 2006-6-6 17:13
不知為什麼有問題.! 請教請教.! 謝謝!
作者: willsort     时间: 2006-6-6 17:38
Re piziliu2004:

      代码存在几个问题:

      1、环境变量只有在引用时才需要使用一对百分号括起,在对其赋值时不需要加百分号,否则会将变量的值作为一个新的环境变量的名字。

      2、表达式中使用求余符号时,需要使用连续的双百分号,否则会被当作变量转义符被脱去。

      3、而set /a字句自身具有引用变量的功能,引用变量时可加或不加百分号,它们行为有少许不同,见附录代码中的最后两句。
@echo off & setlocal enabledelayedexpansion
set /a sum2=9009
set /a rhour=sum2/3600, rmin=sum2%%3600/60, rsec=sum2%%60
echo %rhour%:%rmin%:%rsec%
set rhour=0%rhour%&set rmin=0%rmin%&set rsec=0%rsec%
set rhour=%rhour:~-2%&set rmin=%rmin:~-2%&set rsec=%rsec:~-2%
echo %rhour%:%rmin%:%rsec%
set /a test=12, test2=test+2, test3=%test%+3
echo %test%,%test2%,%test3%

作者: piziliu2004     时间: 2006-6-7 09:02
thanks.!