标题: [文本处理] 如何批量复制文件夹并更改文件夹和文件夹下的名称? [打印本页]
作者: 曰曰曰 时间: 2021-10-11 16:15 标题: 如何批量复制文件夹并更改文件夹和文件夹下的名称?
例如:7月1日文件夹下有2个文件,一个是7月1日巡检和7月1日报告,需要复制7月1日并改名为7月2日,7月2日文件夹下文件名称改为7月2日巡检和7月2日报告,这样应该怎么实现?
作者: Batcher 时间: 2021-10-11 22:07
回复 1# 曰曰曰
如果需要考虑跨年、闰月等情况,建议用完整的年月日来命名文件夹和文件,例如20211011或2021-10-11等
作者: qixiaobin0715 时间: 2021-10-12 12:47
- @echo off
- md 7月2日
- copy 7月1日\*.* 7月2日
- ren 7月2日\*.* 7月2日*.*
- pause
复制代码
作者: qixiaobin0715 时间: 2021-10-12 12:50
针对你所举例子有效。
语焉不详,开个玩笑而已。
作者: 曰曰曰 时间: 2021-10-12 17:03
回复 4# qixiaobin0715
大佬,我如果是想一直复制下去呢?复制几次就到几号,比如复制5次,就有5个文件夹,2号到6号,应该怎么实现?
作者: qixiaobin0715 时间: 2021-10-12 19:09
本帖最后由 qixiaobin0715 于 2021-10-12 19:11 编辑
回复 5# 曰曰曰
斑竹老大已建议你规范命名文件及文件夹,这样文件处理起来要简单的多,像你这样的只能用较为另类的方法,代码未经测试,有什么问题再说:- @echo off
- set FromFolder=7月1日
- setlocal enabledelayedexpansion
- for /l %%i in (2,1,6) do (
- set TargetFolder=7月%%i日
- md !TargetFolder!>nul
- for %%a (%FromFolder%\*.*) do (
- set str=%%~nxa
- copy "%%a" "!TargetFolder!\!TargetFolder!!str:%FromFolder%=!"
- )
- )
- pause
复制代码
把批处理文件放在与文件夹平行目录。
作者: 曰曰曰 时间: 2021-10-13 15:38
回复 曰曰曰
斑竹老大已建议你规范命名文件及文件夹,这样文件处理起来要简单的多,像你这样的只能用较为 ...
qixiaobin0715 发表于 2021-10-12 19:09
大佬,第二段for无法正常运行,单运行第一段后是可以建立文件夹,整体运行后报"此时不应有 (7月1日\*.*。"这个错误。
作者: qixiaobin0715 时间: 2021-10-13 15:57
回复 7# 曰曰曰
1.请检查代码第7行是否缺失右括号或者是否是英文括号。
2.如果第1条没问题,请将括号中的字符用英文双引号括上。
作者: 曰曰曰 时间: 2021-10-26 17:49
回复 8# qixiaobin0715
好的老哥,我试试
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |