BAT批處理文件,腳本時間值%time:~0,2%%time:~3,2%%time:~6,2%的用法

最近公司的項目,需要部署一個oracle定時備份腳本,刪除掉特定時間前的備份文件。BAT批處理文件結合windows系統(任務計劃程序)

正常情況下我們的任務計劃會有反饋數值,通過它可以判斷這個任務計劃上次是否運行正常。

代碼 0 或 0x0:操作成功完成。
代碼 1 或 0x1:調用的函數不正確或調用了未知函數。
代碼 10 或 0xa:環境不正確。
代碼 0x8009000f:常規訪問被拒絕

任務計劃程--歷史記錄裏,操作完成,任務完成。但是在任務欄--上次運行結果顯示不是操作成功完成(0x0),而是0x1。

通過以上錯誤代碼,去排除調用的函數,發現是腳本文件裏的定義時間機制,與設定任務計劃時間不匹配造成無法正確運行腳本。

我在任務計劃設置的時間是 AM 0:30

bat腳本時間設定如下:

set var=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

date變量值如下的各個操作的意義如下:

%date:~0,4%  表示從左向右指針向右偏0位,然後從指針偏移到的位置開始提取4位字符,結果是2014(年的值)
%date:~5,2%  表示指針從左向右偏移5位,然後從偏移處開始提取2位字符,結果是03(月的值)
%date:~8,2%  表示指針從左向右偏移8位,然後從偏移處開始提取2位字符,結果是01(日的值)
%date:~5%   表示指針從左向右偏移5位,然後提取所有的值
%date:~-5%   表示指針反方向偏移,從最右端開始,偏移5位,然後從指針處提取左邊的所有數值。


導致腳本無法正常運行的語句如下:

%time:~0,2%%time:~3,2%%time:~6,2%

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

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


//創建時間命名的文件夾

md d:\%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%

注:md是創建目錄的意思

用%time:~0,2%%time:~3,2%%time:~6,2%時有個問題, 就是如果TIME 是00點的時候,電腦顯示的是0 不是00所以%time:~0,2%就報錯了。

例子:2019-4-22時間9:26:10

set fileDate=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set fileDate2=%date:~0,4%%date:~5,2%%date:~8,2%%time:~1,1%%time:~3,2%%time:~6,2%
echo fileDate:%fileDate%
echo fileDate2:%fileDate2%
fileDate:20190422 92610(9前面是空格)
fileDate2:20190422092610


總結:

1)如果要用%time:~0,2%%time:~3,2%%time:~6,2%  (運行腳本的時間一定是在10-23點區間,否則0-9(H)腳本調用函數錯誤,無法運行)

2)如果要用%time:~1,1%%time:~3,2%%time:~6,2%  (建議運行腳本的時間在0-9點這個區間,如果是>9點,

比如13點。會造成只顯示個位數字3,比如2019-4-22 時間13:26:20 會顯示2019022232610 從而影響時間的整體準確性)

3)或者是直接捨去時間,只用日期來定義文件名。

%date:~0,4%%date:~5,2%%date:~8,2%

比如2019-4-22 那麼文件名會顯示爲20190422.(如果需求是每天做一個備份,那麼這樣命名是沒什麼影響的,如果是一天需要N個備份文件,請參照上面兩種時間設定)

4)set "t=%time:~,2%%time:~3,2%%time:~6,2%" 以當前日期時間命名(此方式還沒有試的,不知道0-9這個區間行不行的
5)bat獲取系統時間,並去掉時間小時前面的空格(如下三行必須一起使用)
   set h=%time:~0,2%
   set h=%h: =0%
   set timedate=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章