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

2023-11-07

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

下面给出脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

@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把脚本放在月份文件夹下执行

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

@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脚本批量 重命名/复制 文件的文章就介绍到这了!

转载自:微点阅读   https://www.weidianyuedu.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何运用bat脚本批量 重命名/复制 文件 的相关文章

  • 如何避免使用 python 处理空的标准输入?

    The sys stdin readline 返回之前等待 EOF 或新行 所以如果我有控制台输入 readline 等待用户输入 相反 我想打印帮助并在没有需要处理的情况下退出并显示错误 而不是等待用户输入 原因 我正在寻找一个Pytho
  • 多处理中的动态池大小?

    有没有办法动态调整multiprocessing Pool尺寸 我正在编写一个简单的服务器进程 它会产生工作人员来处理新任务 使用multiprocessing Process对于这种情况可能更适合 因为工作人员的数量不应该是固定的 但我需
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • 协程从未被等待

    我正在使用一个简单的上下文管理器 其中包含一个异步循环 class Runner def init self self loop asyncio get event loop def enter self return self def e
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • Python HMAC:类型错误:字符映射必须返回整数、None 或 unicode

    我在使用 HMAC 时遇到了一个小问题 运行这段代码时 signature hmac new key secret key msg string to sign digestmod sha1 我收到一个奇怪的错误 File usr loca
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • Spark 和 Python 使用自定义文件格式/生成器作为 RDD 的输入

    我想问一下 Spark 中输入的可能性 我可以看到从http spark apache org docs latest programming guide html http spark apache org docs latest pro
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 如何指示 urwid 列表框的项目数多于当前显示的项目数?

    有没有办法向用户显示 urwid 列表框在显示部分上方 下方有其他项目 我正在考虑类似滚动条的东西 它可以显示条目的数量 或者列表框顶部 底部的单独栏 如果这个行为无法实现 有哪些方法可以实现这个通知 在我的研究过程中 我发现这个问题 ht
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • 如何获取pandas中groupby对象中的组数?

    我想知道有多少个独特的组需要执行计算 给定一个名为 groupby 的对象dfgroup 我们如何找到组的数量 简单 快速 Pandaic ngroups 较新版本的 groupby API pandas gt 0 23 提供了此 未记录的
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不

随机推荐

  • 注入多个实现类【JAVA】(设计模式之策略模式)项目实际场景【Spring boot】

    文章目录 业务场景 策略模式的概念 代码示例 1 创建一个接口类 2 创建接口类的实现类 3 创建脚手架 box类 4 最后创建一个实现工厂类 MsgBeanFactory 5 测试代码 6 输出结果 总结 业务场景 最近有一个场景消息发送
  • 表格行与列边框样式处理的原理分析及实战应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 韩宇波 导语 table之间的边框存在共用问题 自然而然就存在冲突 既然存在冲突 那么就势必涉及到最后渲染哪一个样式的问题 本文就主要研究当冲突产生时 如何让浏览器按照自己意愿渲
  • 新的开始----

    种一棵树最好的时间就是现在 为什么记录博客呢 因为记不住 如何学 怎么学习编程 利用能利用的时间 学上不会的 补上会了不熟的 攻克看了还是模棱两可的 博客模板 总分总 WWH
  • Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用

    在Qt中 我们经常会看到 QT BEGIN NAMESPACE class QAction class QMenu class QPlainTextEdit QT END NAMESPACE 这样的方式表达方式 这样做有什么意义呢 只要深入
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 函数变更记录表 function_change

    函数变更记录表 datamart function change 表结构 CREATE TABLE datamart function change function name character varying 200 函数名 new p
  • Linux巡检脚本

    linux巡检脚本 转自 http myit icu index php archives 1634 待测试 bin bash Author Dean Date 2021 11 25 E mail deanmr qq com bin bas
  • Application tried to present modally an active controller

    控制器模态到另一个控制器发生了错误 报错是Application 试图模态到一个活跃的控制器中 第一次模态的时候不会出现问题 第二次发生了问题 也就是说明了第二次模态的视图是活跃状态 没有销毁 查找代码 发现了问题 第一次模态之后 控制器不
  • json-server常见问题

    json server搭建本地测试服务器 mock数据 模拟后台数据 现在基本上都是前后端分离 前端是前端工程师 后端属于后端工程师 但是前后端交互是个必不可少的环节 一般用Ajax进行交互 还需要一些实验数据来支撑 就需要模拟数据 1 v
  • Android第二讲笔记(约束布局ConstraintLayout)

    目录 为什么要使用约束布局ConstraintLayout 约束布局基本属性 约束布局简单使用方法 示例 示例一 仿QQ消息 示例二 仿微信登陆界面 示例三 仿QQ音乐界面 补充 写在最后 ScrollView 滚动布局 示例一 纵向滚动
  • 实测C++变量长度、最小值、最大值

    说明 基本的内置变量类型 bool char wchar t int float double 类型修饰符 signed unsigned short long 环境 win7x64 VS2015 Debugx86 测试结果 补充 doub
  • [1190]如何解决Chrome无法访问ftp的问题

    在最新一次Chrome更新中彻底抛弃ftp协议了 之前可以在搜索栏搜索chrome flags 并将Enable support for ftp Urls设置为Enabled才能访问ftp 但是在Chrome96中直接将修改选项剔除了 这代
  • 珠心算测验-NOIP2014普及t1

    题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术 珠心算训练 既能够开发智力 又能够为日常生活带来很多便利 因而在很多学校得到普及 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法 他随机生成一个正整数集合
  • SpringBoot 项目在Linux服务器上启动、停止脚本(详细)

    SpringBoot 项目在Linux服务器上启动 停止脚本详细 创建脚本 在jar包目录 创建脚本 实际项目只需要修改包名 1 进入可编辑 执行代码 vim xxxxxx sh xxxxxx就是你自己创建的脚本名称 写好后 按下回车后 进
  • C语言

    这篇文章主要和大家分享三种基础的排序算法 冒泡排序 选择排序 快速排序 一 排序问题 1 冒泡排序 冒泡排序的主要思想是通过两两相邻的元素进行比较 通过元素的大小决定是否交换 一趟冒泡排序的结果是一定有一个最大数会排到最后一个元素 因此对n
  • Python中requests包的安装

    在使用pycharm开发的时候 我们经常需要导入一些包 但是这些包 我们事先并没有安装 一个显著的现象就是我们在pycharm中导入一个包时 系统提示不存在 那就是我们没有安装这个包 举一个例子 我在使用pycharm时 需要导入一个req
  • c++ typeid使用

    今天用了下c typeid这个操作符记录一下 class parent void getdata virtual void deal class son public parent int main parent pa new son po
  • How do you install Typecho in Docker and mount hosting server's Mysql service

    Fist of all I presume that you have already installed Docker and Portainer and works smoothly All CLI procdures are base
  • Ubuntu安装GCC 3.4

    Ubuntu安装GCC 3 4 一 背景 二 安装 三 总结 一 背景 因最近学习hit os编译linux 0 11版本内核 需要使用到gcc 3 4 故此记录 二 安装 下载deb包 wget http old releases ubu
  • 如何运用bat脚本批量 重命名/复制 文件

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