BAT批處理提取系統(tǒng)時(shí)間的實(shí)現(xiàn)代碼(bug修復(fù))
一般情況下用下面的代碼即可,但批處理的默認(rèn)0開(kāi)頭的數(shù)字以為是8進(jìn)制,導(dǎo)致獲取的時(shí)間不準(zhǔn)確
for /f "tokens=1,2 delims=:" %%i in ('time/t') do ( set/a xiaos=%%i set/a fenz=%%j )
使用上面的代碼提取系統(tǒng)的小時(shí)和分鐘,原本運(yùn)行的結(jié)果如下:
xiaos=9
fenz=18
但今天提取的卻是下面格式(同一臺(tái)機(jī)器,同一個(gè)系統(tǒng)):
xiaos=09
fenz=18
由此帶來(lái)后期計(jì)算的錯(cuò)誤。
因?yàn)榻佑|批處理不久,不知是哪里出了問(wèn)題?特請(qǐng)教。
bathome的管理員給出的答案
@echo off for /f "tokens=1,2 delims=:" %%i in ('time /t') do ( set xiaos=%%i set fenz=%%j ) set xiaos=10%xiaos: =% set fenz=10%fenz% set /a xiaos=xiaos%%100 set /a fenz=fenz%%100 echo %xiaos% echo %fenz% pause
完美解決。
問(wèn)題找到了。日期和時(shí)間的格式是03,09格式,如果進(jìn)行數(shù)值計(jì)算或賦值時(shí),因?yàn)槭?開(kāi)頭,所以會(huì)被認(rèn)為是八進(jìn)制數(shù)值,當(dāng)為08,09格式就需要進(jìn)位,于是就出錯(cuò)了。而07以下不需要進(jìn)位所以不會(huì)出錯(cuò)。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。