BAT批處理提取系統(tǒng)時(shí)間的實(shí)現(xiàn)代碼(bug修復(fù))
一般情況下用下面的代碼即可,但批處理的默認(rèn)0開頭的數(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)槭?開頭,所以會(huì)被認(rèn)為是八進(jìn)制數(shù)值,當(dāng)為08,09格式就需要進(jìn)位,于是就出錯(cuò)了。而07以下不需要進(jìn)位所以不會(huì)出錯(cuò)。
相關(guān)文章
cmd.exe 一些常見(jiàn)的啟動(dòng)參數(shù)介紹
這篇文章主要介紹了cmd.exe 一些常見(jiàn)的啟動(dòng)參數(shù)介紹,很多情況我們?cè)趯W(xué)習(xí)bat的時(shí)候都需要使用bat的一些參數(shù)2016-12-12bat 傳遞參數(shù)調(diào)用問(wèn)題解決記錄
這篇文章主要為大家介紹了bat 傳遞參數(shù)調(diào)用問(wèn)題解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05CMD命令行中以管理員權(quán)限啟動(dòng)應(yīng)用程序?qū)崿F(xiàn)方法
這篇文章主要介紹了CMD命令行中以管理員權(quán)限啟動(dòng)應(yīng)用程序?qū)崿F(xiàn)方法,本文使用一個(gè)JS腳本來(lái)實(shí)現(xiàn),需要的朋友可以參考下2015-06-06