找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20821|回复: 8

[文本处理] 如何批量复制文件夹并更改文件夹和文件夹下的名称?

[复制链接]
发表于 2021-10-11 16:15:50 | 显示全部楼层 |阅读模式
例如:7月1日文件夹下有2个文件,一个是7月1日巡检和7月1日报告,需要复制7月1日并改名为7月2日,7月2日文件夹下文件名称改为7月2日巡检和7月2日报告,这样应该怎么实现?
发表于 2021-10-11 22:07:48 | 显示全部楼层
回复 1# 曰曰曰


    如果需要考虑跨年、闰月等情况,建议用完整的年月日来命名文件夹和文件,例如20211011或2021-10-11等
发表于 2021-10-12 12:47:47 | 显示全部楼层
  1. @echo off
  2. md 7月2日
  3. copy 7月1日\*.* 7月2日
  4. ren 7月2日\*.* 7月2日*.*
  5. pause
复制代码
发表于 2021-10-12 12:50:51 | 显示全部楼层
针对你所举例子有效。
语焉不详,开个玩笑而已。
 楼主| 发表于 2021-10-12 17:03:57 | 显示全部楼层
回复 4# qixiaobin0715


    大佬,我如果是想一直复制下去呢?复制几次就到几号,比如复制5次,就有5个文件夹,2号到6号,应该怎么实现?
发表于 2021-10-12 19:09:21 | 显示全部楼层
本帖最后由 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:26 | 显示全部楼层
回复  曰曰曰
斑竹老大已建议你规范命名文件及文件夹,这样文件处理起来要简单的多,像你这样的只能用较为 ...
qixiaobin0715 发表于 2021-10-12 19:09



    大佬,第二段for无法正常运行,单运行第一段后是可以建立文件夹,整体运行后报"此时不应有 (7月1日\*.*。"这个错误。
发表于 2021-10-13 15:57:22 | 显示全部楼层
回复 7# 曰曰曰

1.请检查代码第7行是否缺失右括号或者是否是英文括号。
2.如果第1条没问题,请将括号中的字符用英文双引号括上。
 楼主| 发表于 2021-10-26 17:49:57 | 显示全部楼层
回复 8# qixiaobin0715


    好的老哥,我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:23 , Processed in 0.015048 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表