2014-08-31 57 views
0

當我嘗試運行下面的代碼並將開始時間設爲08:00或09:00時,它立即崩潰。即使像08:45,09:45等數值等都不起作用。此代碼崩潰輸入08和09

有人可以幫我解決什麼是錯的。 在此先感謝。


@ECHO OFF 
ECHO Task calculation 


set /P st=Please enter the CRQ Start time(hh:mm) 


set calc1=00:30 
set calc2=01:00 
set calc3=01:00 
set calc4=00:30 


set task1=st 


set /A centis=(%st:~0,2%)*3600+(%st:~3,2%)*60 
if %centis% GTR 86400 set centis=0 
set /A c1=(%calc1:~0,2%)*3600+(%calc1:~3,2%)*60 
set /A c2=(%calc2:~0,2%)*3600+(%calc2:~3,2%)*60 
set /A c3=(%calc3:~0,2%)*3600+(%calc3:~3,2%)*60 
set /A c4=(%calc4:~0,2%)*3600+(%calc4:~3,2%)*60 


set /a t1=centis+c1 
if %t1% GTR 86400 set t1=0 
set /a t1h=t1/3600 
set /a t1m=(t1-(t1h*3600))/60 


set /a t2=t1+c2 
if %t2% GTR 86400 set t2=0 
set /a t2h=t2/3600 
set /a t2m=(t2-(t2h*3600))/60 


set /a t3=t2+c3 
if %t3% GTR 86400 set t3=0 
set /a t3h=t3/3600 
set /a t3m=(t3-(t3h*3600))/60 


set /a t4=t3+c4 
if %t4% GTR 86400 set t4=0 
set /a t4h=t4/3600 
set /a t4m=(t4-(t4h*3600))/60 




echo TASK1 StartTime :%st% 
echo Task1 EndTime :%t1h%:%t1m% 


echo Task2 StartTime :%t1h%:%t1m% 
echo Task2 EndTime :%t2h%:%t2m% 


echo Task3 StartTime :%t2h%:%t2m% 
echo Task3 EndTime :%t3h%:%t3m% 


echo Task4 StartTime :%t3h%:%t3m% 
echo Task4 EndTime :%t4h%:%t4m% 


echo CRQ EndTime :%t4h%:%t4m% 


pause>null 
+0

歡迎來到堆棧溢出!請閱讀[最小示例](http://stackoverflow.com/help/mcve)。 – 2014-08-31 14:22:02

回答

5

在批處理文件,數字從0開始在八進制格式,所以08不是有效的值

set /A centis=(1%st:~0,2%-100)*3600+(1%st:~3,2%-100)*60 

A中的兩位數字前包括1(即100 )和一個aditional -100解決問題