文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

教你如何利用bat脚本批量 重命名/复制 文件

2022-12-29 18:01

关注

在平时运维的时候,最繁琐的就是要每个月写运维记录的文档如excel表格,一个月30日要产生30个文件,拷30个运维记录文档的模版再进行重命名实在太麻烦了,所以想到copy模版之后可以用脚本来对文件进行重命名自己想要的效果,首先给出效果图

下面给出脚本

@echo off
set /p m=请输入月份如:5(m):
set a=0
setlocal EnableDelayedExpansion
dir /b .\*.xls | find /c /v "" >> .\tmp.txt
set /p c=<.\tmp.txt
del /a /f /q .\tmp.txt 

for %%i in (*.xls) do (
set /a a+=1
if !a! gtr %c% (goto aa)
echo !a!
echo %%i 
ren "%%i" "日常运维检查记录2018-%m%-!a!.xls"
)
:aa
pause

脚本解释:

dir /b下面接上find命令来统计当前目录下的xls格式的文件数,这里假设我运维记录的文件使xls格式的,然后把统计的文件数写入txt文件中,例如有5个xls文件就会把5写入,然后从这个txt中读出这个数字赋值给c变量,再把这个txt文件删除

后面的for循环就是重命名文件了,这里注意有一点,为什么我在for循环中要加个条件语句呢?这个条件语句的意思是一旦a变量(这里a代表着文件重命名中的文件名天数的后缀名,由1开始计数,直到达到文件夹中重命名的xls文件数为止)大于c变量(统计的用于重命名xls文件数),就会终止这个循环并且跳出到aa,这里发现在重命名文件的时候会循环会溢出多一次,也就是假设原来有5个xls文件要重命名,在用这个循环重命名的时候如果不加这个if语句来防止溢出,就会重命名了6次,从而把第一个重命名的文件再次重命名,这里给出图给大家看一下就知道了

这里加入有5个3月份的运维检查记录文件

假如我在代码中把if语句屏蔽了

然后执行脚本,把这5个文件重命名成4月份的运维检查记录文件

发现循环执行了6次,并且看到最后一次重命名把第一个重命名的文件4-1给替换调了4-6

经过上面的解释,大家应该有个理解了把!

在代码中我这里规定了重命名的文件后缀的年份是2018年,这里大家可以模仿月份的输入set /p来加上一个年份的输入,引用变量就可以重命名自己想要的年份后缀名,下面说下这个重命名脚本的使用规则,注意将脚本文件先保存成ansi编码的格式再在里面编辑含有中文的代码,不然重命名或者执行脚本的时候会报错喔

重命名文件.bat
1新建月份文件夹如:4月
2关闭360等软件
3复制运维记录的文件到月份文件夹下
4把脚本放在月份文件夹下执行

就可以看到当前文件夹下会有我们重命名的文件名字了

其实与其重命名文件,大家也可以考虑用复制文件办法,这样就不用考虑重命名时候的溢出问题,下面给出文件复制的办法

@echo off
set /p year=请输入年份如:2018(year):
set /p month=请输入月份如:4(month):
set /p day=请输入这个月的天数如:30(day):
if %day%==31 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls
goto aa)
if %day%==30 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls 
goto aa)
if %day%==29 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls
goto aa)
if %day%==28 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls 
goto aa)
if %day%==27 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls 
goto aa)
if %day%==26 (
for /l %%d in (1,1,%day%) do copy .\module.xls .\日常运维检查记录%year%-%month%-%%d.xls 
goto aa)

echo "输入的天数不符合规则!"

:aa
pause
exit 

代码比较简单,这里我规定了要把module.xls这个运维记录的模版文件放在当前新建的月份文件夹下,然后通过复制这个文件来生成对应天数的运维检查记录文件,这里我规定了天数26-31天,同样要注意的是脚本的编码要是ansi编码

下面给出操作方法和效果图

批量复制文件.bat
1新建月份文件夹如:4月
2将模版文件更名为module.xls放在月份文件夹下

3把脚本放在月份文件夹下面执行脚本输入参数

到此这篇关于教你如何利用bat脚本批量 重命名/复制 文件的文章就介绍到这了,更多相关bat脚本批量 重命名内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯