批處理擷取目前時間
來源:互聯網
上載者:User
rem CODE BY t0nsha
rem 關於提取date,time輸出結果的一個批處理
rem “:”(冒號)和“~”波浪號必不可少!
rem “~”後的數字:為正數表示捨棄輸出結果的前幾位;直接跟負數表示取到輸出結果的後第幾位。
rem “,”後的數字:為正數表示取到輸出結果的前第幾位;為負數表示捨棄輸出結果的後幾位。
echo %date%
echo %date:~4%
::下行表示捨棄前0位,取到第10位(即取輸出結果的前10位)
echo %date:~0,10%
echo %date:~4,-5%
pause
echo %time%
echo %time:~-3%
echo %time:~2,-3%
pause
echo %date:~4% %time:~0,-3%
pause BTW使用批處理產生日期(時間)檔案、檔案夾 幫別人整Sql server自動備份
發現無法使用網路對應磁碟機作為備份檔案存放路徑
而本機磁碟空間實在是不夠
於是決定在本機只備份最新2天資料
再寫個批處理,做成系統調度
每周將備份資料複製到網路磁碟機上存檔從網上搜到批處理產生日期檔案的辦法
下面是實現的比較好的批次檔:
@echo off
set aFile=bak-%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%
set bFile=bak-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
set cFile=bak-%DATE%
echo Afile=%aFile%
echo Bfile=%bFile%
echo Cfile=%cFile%輸出:
Afile=bak-20061219
Bfile=bak-113202
Cfile=bak-星期二 2006-12-19於是備份bat就好寫了
@echo off
echo 正在備份資料到網路磁碟機。。。
set folder=%DATE%
md "y:\%folder%"
copy d:\DataBak\*.BAK "y:\%folder%"
echo 備份完畢。------------------------------------------------------------------------------------------------------
@echo off
set AFile=bak-%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%
set BFile=bak-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
echo AFile=%AFile%.rar
echo BFile=%BFile%.rar
運行此批處理的結果:
AFile=bak-20060109.rar ------- 年月日 -- 8位
BFile=bak-140650.rar ---------- 時分秒 -- 6位另:如果小時數只有一位元字,造成中間有空格而出錯的問題,請使用如下方法補0
set hh=%time:~0,2%
if /i %hh% LSS 10 (set hh=0%time:~1,1%)
http://blog.chinaunix.net/uid-11848011-id-96434.html