欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows批處理bat腳本獲取并且處理當(dāng)前日期與時(shí)間信息

 更新時(shí)間:2024年05月19日 19:49:49   投稿:mdxy-dxy  
最近同步一些數(shù)據(jù)需要獲取當(dāng)前的日期然后,通過分隔符等格式化成需要的日期,那么就需要了解一下他的核心原理那么就可以得到我們想到的結(jié)果了

操作系統(tǒng)不同,日期格式也可能不同:

星期二 2008-07-29
2008-07-29 星期二
07/29/2008 Tue
Tue 07/29/2008

再考慮到中、英之外的其它語言的操作系統(tǒng),日期格式的種類實(shí)在太多了。
要想標(biāo)準(zhǔn)化地獲取當(dāng)前系統(tǒng)日期2008-07-28,直接截取%date%變量的方法是不行的。

一、%date:~0,4%和 %time:~0,2%字符截取操作用法

比如在windows cmd命令行窗口執(zhí)行date命令后這個(gè)環(huán)境變量的值為

那么如下的各個(gè)操作的意義如下:

%date:~0,4%  表示從左向右指針向右偏0位,然后從指針偏移到的位置開始提取4位字符,結(jié)果是2024(年的值)
%date:~5,2%  表示指針從左向右偏移5位,然后從偏移處開始提取2位字符,結(jié)果是05(月的值)
%date:~8,2%  表示指針從左向右偏移8位,然后從偏移處開始提取2位字符,結(jié)果是19(日的值)
%date:~5%    表示指針從左向右偏移5位,然后提取所有的值
%date:~-5%   表示指針反方向偏移,從最右端開始,偏移5位,然后從指針處提取左邊的所有數(shù)值。
 
注意:“2024-05-19 周日”是個(gè)字符串,在計(jì)算機(jī)里指針是從0開始計(jì)數(shù)的,所以這串字符的指針意義上的第5位是0,月份的0,取兩位剛好是05. 

同理,比如當(dāng)前系統(tǒng)的time變量的值如下:

那么如下的各個(gè)操作的意義如下:

%time:~0,2%  表示從左向右指針向右偏0位,然后從指針偏移到的位置開始提取2位字符,結(jié)果是小時(shí)字段數(shù)值
%time:~3,2%  表示指針從左向右偏移3位,然后從偏移處開始提取2位字符,結(jié)果是分鐘字段數(shù)值
%time:~6,2%  表示指針從左向右偏移6位,然后從偏移處開始提取2位字符,結(jié)果是秒字段數(shù)值

實(shí)戰(zhàn)操作:

md d:\%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
注:md是創(chuàng)建目錄的意思 
執(zhí)行后D盤根目錄多了一個(gè)文件夾

這樣就可以了。

二、如何獲取當(dāng)前日期時(shí)間信息

其實(shí)很簡單,看示例

::demo.bat

@echo off

echo date=%date%
echo time=%time%

pause

三、如何將當(dāng)前日期時(shí)間信息格式化為字符串

其實(shí)獲取到的當(dāng)前日期時(shí)間信息已經(jīng)是字符串了,只是有時(shí)候我們可能需要不一樣的格式,這里提供兩種方法。

1.第一種方法

看代碼

::demo.bat
@echo off
set datetime=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
echo %datetime%
pause

2.第二種方法

看代碼

::demo.bat
@echo off
for /f "tokens=1-3 delims=/- " %%1 in ("%date%") do set datetime=%%1-%%2-%%3
for /f "tokens=1-3 delims=.: " %%1 in ("%time%") do set datetime=%datetime%-%%1-%%2-%%3
echo %datetime%
pause

這兩種方法看起來第一種更簡單一點(diǎn),但是第一種會(huì)存在一個(gè)問題,就是有可能會(huì)包含空格,這樣實(shí)際使用的時(shí)候就可能會(huì)遇到問題,比如以這個(gè)字符串為名稱創(chuàng)建文件夾時(shí)可能會(huì)創(chuàng)建出來兩個(gè),所以按需使用,具體的原理這里就不解釋了。

四、bat 獲取系統(tǒng)時(shí)間,并去掉時(shí)間小時(shí)前面的空格

有時(shí)候我們需要獲取當(dāng)前系統(tǒng)的時(shí)間,如果小時(shí)小于10的話,獲取小時(shí)會(huì)出現(xiàn)空格的情況:

c:\>time
當(dāng)前時(shí)間: 19:41:41.61
c:\>echo %time:~0,2%
 8    ------這個(gè)8前面是有空格的

c:\>
如何去掉空格讓時(shí)間正確的顯示呢?其實(shí)只需要將空格替換成0就可以了。

c:\>set h=%time:~0,2%

c:\>echo %h: =0%  -----這里的‘=’就是‘替換’的含意
08

c:\>
你也可以將這里的空格替換成其它值:
c:\>echo %h: =aaaaa%
aaaaa8
那現(xiàn)在獲取當(dāng)前系統(tǒng)的日期和時(shí)間就可以這么寫了:

c:\>set h=%time:~0,2%

c:\>set h=%h: =0%

c:\>echo %date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%

20240519194112

五、Windows bat 當(dāng)前、昨天、明天日期

當(dāng)前日期

@echo off
echo %date% #輸出2024-05-19 周日
echo %date:~0,10% #2024-05-19
echo %date:~0,4%%date:~5,2%%date:~8,2% #20240519
echo %time% # 19:45:21.61
pause

昨天日期

yesterday.bat

@echo off
echo Wscript.echo dateadd("d",-1,date)>vbs.vbs
for /f %%a in ('cscript /nologo vbs.vbs') do del vbs.vbs&&set yyyymmdd=%%a
for /f "tokens=1,2,3* delims=//- " %%i in ('echo %yyyymmdd%') do set yyyy=%%i&set mm=%%j&set dd=%%k
if   %mm%   LSS   9   set   mm=0%mm%
if   %dd%   LSS   9   set   dd=0%dd%
set yesterday=%yyyy%-%mm%-%dd%
echo 昨天是:%yesterday%
echo 請按任意鍵退出
pause>nul

需要注意的是 delims=//-,因?yàn)椴煌僮飨到y(tǒng)不同的分隔符,2024-05-19 與 2024/05/19,/是特殊符號需要轉(zhuǎn)義,如果是-,直接就-就可以了,如下圖所示

@echo off
echo Wscript.echo dateadd("d",-1,date)>vbs.vbs
for /f %%a in ('cscript /nologo vbs.vbs') do del vbs.vbs&&set yyyymmdd=%%a
for /f "tokens=1,2,3* delims=- " %%i in ('echo %yyyymmdd%') do set yyyy=%%i&set mm=%%j&set dd=%%k
if   %mm%   LSS   9   set   mm=0%mm%
if   %dd%   LSS   9   set   dd=0%dd%
set yesterday=%yyyy%-%mm%-%dd%
echo 昨天是:%yesterday%
echo 請按任意鍵退出
pause>nul

明天日期

tomorrow.bat

@echo off
echo Wscript.echo dateadd("d",1,date)>vbs.vbs
for /f %%a in ('cscript /nologo vbs.vbs') do del vbs.vbs&&set yyyymmdd=%%a
for /f "tokens=1,2,3* delims=//- " %%i in ('echo %yyyymmdd%') do set yyyy=%%i&set mm=%%j&set dd=%%k
if   %mm%   LSS   9   set   mm=0%mm%
if   %dd%   LSS   9   set   dd=0%dd%
set tomorrow=%yyyy%-%mm%-%dd%
echo 明天是:%tomorrow%
echo 請按任意鍵退出
pause>nul

效果圖

到此這篇關(guān)于windows批處理bat腳本獲取并且處理當(dāng)前日期與時(shí)間信息的文章就介紹到這了,更多相關(guān)bat獲取當(dāng)前日期與時(shí)間的代碼分析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論