it编程 > 前端脚本 > Dos/bat

bat根据当前日期创建文件夹的方法

66人参与 2024-05-19 Dos/bat

为了不等路也能复制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根据日期创建文件夹内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

用BAT创建文件夹文件及回显环境变量的问题

05-19

bat批处理之字符串操作的实现

05-19

Windows环境bat脚本获取文件的创建时间

05-19

bat命令实现批量提取、去空格、修改文件名的方法

05-19

批处理命令call、start、goto的使用

05-19

bat批处理脚本中文乱码的解决

05-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论