[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

例如:7月1日文件夹下有2个文件,一个是7月1日巡检和7月1日报告,需要复制7月1日并改名为7月2日,7月2日文件夹下文件名称改为7月2日巡检和7月2日报告,这样应该怎么实现?

回复 1# 曰曰曰


    如果需要考虑跨年、闰月等情况,建议用完整的年月日来命名文件夹和文件,例如20211011或2021-10-11等
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. md 7月2日
  3. copy 7月1日\*.* 7月2日
  4. ren 7月2日\*.* 7月2日*.*
  5. pause
复制代码

TOP

针对你所举例子有效。
语焉不详,开个玩笑而已。

TOP

回复 4# qixiaobin0715


    大佬,我如果是想一直复制下去呢?复制几次就到几号,比如复制5次,就有5个文件夹,2号到6号,应该怎么实现?

TOP

本帖最后由 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
复制代码
把批处理文件放在与文件夹平行目录。

TOP

回复  曰曰曰
斑竹老大已建议你规范命名文件及文件夹,这样文件处理起来要简单的多,像你这样的只能用较为 ...
qixiaobin0715 发表于 2021-10-12 19:09



    大佬,第二段for无法正常运行,单运行第一段后是可以建立文件夹,整体运行后报"此时不应有 (7月1日\*.*。"这个错误。

TOP

回复 7# 曰曰曰

1.请检查代码第7行是否缺失右括号或者是否是英文括号。
2.如果第1条没问题,请将括号中的字符用英文双引号括上。

TOP

回复 8# qixiaobin0715


    好的老哥,我试试

TOP

返回列表