Board logo

标题: [文本处理] 如何批量复制文件夹并更改文件夹和文件夹下的名称? [打印本页]

作者: 曰曰曰    时间: 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

  1. @echo off
  2. md 7月2日
  3. copy 7月1日\*.* 7月2日
  4. ren 7月2日\*.* 7月2日*.*
  5. 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# 曰曰曰
斑竹老大已建议你规范命名文件及文件夹,这样文件处理起来要简单的多,像你这样的只能用较为另类的方法,代码未经测试,有什么问题再说:
  1. @echo off
  2. set FromFolder=7月1日
  3. setlocal enabledelayedexpansion
  4. for /l %%i in (2,1,6) do (
  5.     set TargetFolder=7月%%i日
  6.     md !TargetFolder!>nul
  7.     for %%a (%FromFolder%\*.*) do (
  8.         set str=%%~nxa
  9.         copy "%%a" "!TargetFolder!\!TargetFolder!!str:%FromFolder%=!"
  10.     )
  11. )
  12. 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