首頁 > 軟體

bat根據當前日期建立資料夾的方法

2022-03-22 13:01:19

為了不等路也能複製copy,所以編輯部落格的時候這個沒有放到程式碼塊裡,也黏貼下
:: 設定CMD顯示的編碼格式為UTF-8(防止中文亂碼)
chcp 65001

:: @echo off 表示不回顯執行的命令
@echo off

::一定要看下當前日期的格式,不同的windows系統,列印的當前時間格式可能不一樣(這樣的年月日擷取的開始位置就不一樣),防止被坑
set ORIGINAL_DATE=%date%
echo %ORIGINAL_DATE%

:: 日期擷取遵從格式 %date:~x,y%,表示從第x位開始,擷取y個長度(x,y的起始值為0)
:: 可以看到列印出來的當前日期ORIGINAL_DATE:週一 2022/03/21
:: 年份從第3位開始擷取4位元,月份從第5位開始擷取2位,日期從第8位元開始擷取2位
set YEAR=%date:~3,4%
set MONTH=%date:~8,2%
set DAY=%date:~11,2%
:: 時間擷取遵從格式 %time:~x,y%,表示從第x位開始,擷取y個長度(x,y的起始值為0)
:: 時鐘從第0位開始擷取2位,分鐘從第3位開始擷取2位,秒鐘從第6位開始擷取2位
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
:: 毫秒
set MILLISECIOND=%time:~9,2%

:: 當時鍾小於等於9時,前面有個空格,這時我們少擷取一位,從第1位開始擷取
set TMP_HOUR=%time:~1,1%
set NINE=9
set ZERO=0
:: 處理時鐘是個位數的時候前面補上一個0, LEQ表示小於等於
:: if 和 set 一定要在同一行
if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%
set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%%MILLISECIOND%
mkdir %CURRENT_DATE_TIME_STAMP%
pause

:: 設定CMD顯示的編碼格式為UTF-8(防止中文亂碼)
chcp 65001

:: @echo off 表示不回顯執行的命令
@echo off
::一定要看下當前日期的格式,不同的windows系統,列印的當前時間格式可能不一樣(這樣的年月日擷取的開始位置就不一樣),防止被坑
set ORIGINAL_DATE=%date%
echo %ORIGINAL_DATE%
:: 日期擷取遵從格式 %date:~x,y%,表示從第x位開始,擷取y個長度(x,y的起始值為0)
:: 可以看到列印出來的當前日期ORIGINAL_DATE:週一 2022/03/21
:: 年份從第3位開始擷取4位元,月份從第5位開始擷取2位,日期從第8位元開始擷取2位
set YEAR=%date:~3,4%
set MONTH=%date:~8,2%
set DAY=%date:~11,2%
:: 時間擷取遵從格式 %time:~x,y%,表示從第x位開始,擷取y個長度(x,y的起始值為0)
:: 時鐘從第0位開始擷取2位,分鐘從第3位開始擷取2位,秒鐘從第6位開始擷取2位
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
:: 毫秒
set MILLISECIOND=%time:~9,2%
:: 當時鍾小於等於9時,前面有個空格,這時我們少擷取一位,從第1位開始擷取
set TMP_HOUR=%time:~1,1%
set NINE=9
set ZERO=0
:: 處理時鐘是個位數的時候前面補上一個0, LEQ表示小於等於
:: if 和 set 一定要在同一行
if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%
set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%%MILLISECIOND%
mkdir %CURRENT_DATE_TIME_STAMP%
pause

補充:bat根據當前時間生成檔名稱

rem 根據當前日期獲取,年月日串
set yyyy=%date:~,4%
set mm=%date:~5,2%
set day=%date:~8,2% 
set "YYYYmmdd=%yyyy%%mm%%day%"
rem 把年月日串中的空格替換為0
set "YYYYmmdd=%YYYYmmdd: =0%"
echo "YYYYmmdd%YYYYmmdd%YYYYmmdd"
rem 根據當前時間獲取,時分秒串
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2% 
set "hhmiss=%hh%%mi%%ss%"
set "hhmiss=%hhmiss: =0%"
echo "hhmiss%Time%hhmiss"
echo %hhmiss%
rem 把時間串中的:替換為0
set "hhmiss=%hhmiss::=0%"
rem 把時間串中的空格替換為0
set "hhmiss=%hhmiss: =0%"
rem 根據日期時間生成檔名稱,中間以HH區分日期和時間部分
set "filename=%YYYYmmdd%HH%hhmiss%.rar"
echo %filename%
pause 
echo 根據當前日期時間,生成檔名稱,......
set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%
set "filename=WebSite3copy%YYYYmmdd%_%hhmiss%.zip"
echo %filename%

參考

bat 獲取檔案的建立時間_詳解Windows下獲取時間bat指令碼總結,值得收藏

用BAT建立資料夾,建立檔案,回顯環境變數

到此這篇關於bat根據當前日期建立資料夾的文章就介紹到這了,更多相關bat根據日期建立資料夾內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com