bat根据修改⽇期复制⽂件到指定⽬录
⼀、介绍bat批处理⽂件之前先了解下基本批处理代码
1.::添加注释。
2.set设置变量。
批处理文件注释4.delims切割函数,介绍很详细,可供参考。
5.%date:~0,4%获取年份,date表⽰当前时间,0,4表⽰从位开始截取,截取到第四位,具体见脚本。
⼆、bat脚本
当前脚本功能主要实现了将bat脚本所在⽬录下所有修改⽇期为今天的⽂件(注意这⾥是⽂件,不包含⽂件夹)复制到today⽂件夹下,重复执⾏bat 时,存在重名⽂件不会询问直接替换,脚本解析可见::后注释。
:
:设置关闭批处理回显、设置cmd标题
@echo off & title Copy the file according to the modification date
cd /d %~dp0
setlocal enabledelayedexpansion
::获取当前时间NowDate,格式为20211202样式
set NowDate=%date:~,4%%date:~5,2%%date:~8,2%
::echo输出语句
echo 复制修改⽇期为!NowDate!的⽂件
::判断是否存在today⽂件夹,不到则新建
if not exist today md today
::delims切割函数,'dir /a-d /b /tw'表⽰for循环遍历当前⽬录下的⽂件
for /f "delims=" %%a in ('dir /a-d /b /tw') do (
::这⾏没看懂i
if not "%%~fa"=="%~f0" (
::%%~ta获取⽇期/时间
set FileDate=%%~ta
::格式化FileDate为上⾯NowDate同样式
set FileDate=!FileDate:~,4!!FileDate:~5,2!!FileDate:~8,2!
::拿格式化后⽂件修改时间和当前时间作⽐较,相同则复制⽂件到today⽂件夹下。
if !FileDate! equ !NowDate! copy "%%~a" today\
)
)
:
:关闭cmd窗⼝,想查看输出结果可以将exit改pause,cmd窗⼝将不进⾏关闭操作。
exit
三、懒⼈必备
⽐如⾃⼰桌⾯每天新建很多⽂件很乱,想要将桌⾯当天的⽂件定时以时间戳为⽂件名创建⽂件夹并把⽂件移动到改⽂件夹下,可以参考下⾯写好的bat,再配置到windows系统⾃带的任务计划程序中去定时执⾏,简直了,配置如图。
脚本如下,但是脚本只能放到桌⾯,放到其他路径需要修改for循环中('dir /a-d /b /tw')模块遍历路径,但由于本⼩⽩暂未到书写⽅式,欢迎⼤佬们前来指点⼀⼆。
@echo off & title Copy the file according to the modification date
cd /d %~dp0
setlocal enabledelayedexpansion
set NowDate=%date:~,4%%date:~5,2%%date:~8,2%
if not exist !NowDate! md !NowDate!
for /f "delims=" %%a in ('dir /a-d /b /tw') do (
if not "%%~fa"=="%~f0" (
set FileDate=%%~ta
set FileDate=!FileDate:~,4!!FileDate:~5,2!!FileDate:~8,2!
if !FileDate! equ !NowDate! move "%%~a" !NowDate!\
)
)
exit

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。