1. 程式人生 > 程式設計 >BAT獲取時間有空格問題的解決方法

BAT獲取時間有空格問題的解決方法

最近在專案上需要把檔案定時備份,用BAT檔案來自動生成資料夾名,精確到秒:

bat指令碼時間設定如下:

pushd E:\Test
set T=%date:~0,10%-%time:~0,2%%time:~3,2%%time:~6,2%
md %T%
popd

time變數值如下的各個操作的意義如下:

%time:~0,2% 表示從左向右指標向右偏0位,然後從指標偏移到的位置開始提取2位字元,結果是小時欄位數值
%time:~3,2% 表示指標從左向右偏移3位,然後從偏移處開始提取2位字元,結果是分鐘欄位數值
%time:~6,2% 表示指標從左向右偏移6位,然後從偏移處開始提取2位字元,結果是秒欄位數值

用%time:~0,2%時有個問題, 就是如果TIME 是08點的時候,電腦顯示的是08,但是實際上用%time:~0,2%抓取的時候就會有問題,因為實際上抓到到時空格+8,這樣在用md建立資料夾的時候,因為T中有空格,會建立2個資料夾:

比如現在時間是2019-08-23,08:30:30;

T = 20190823- 83030

md %T%會建立2個資料夾:20190823-和83030這樣2個資料夾。

解決辦法:

把小時單獨定義h,然後把h中空格用0代替,再把h加入到T中:

set h=% =0% -> 這裡的‘='就是‘替換'的含意

pushd E:\Test
set h=%time~0,2%
set h=% =0%
set T=%date:~0,10%-%h%%time:~3,2%
md %T%
popd

到此這篇關於BAT獲取時間有空格問題的解決方法的文章就介紹到這了,更多相關BAT時間空格問題內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!