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

[文件操作] 如何将多个文件夹里的文件分别复制到不同目录里并以目标目录里的文件名称重命名

[复制链接]
发表于 2018-4-2 17:17:13 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2018-4-2 21:49 编辑

求助:请高手帮助,一个比较麻烦的改名的批处理,不知道怎么弄了
为什么这么要求,因为两个目录中的XML一个是加密的一个是未加密的。生成的未加密的XML文件要按原加密的XML文件名命名,才可以进行下面的操作。

比如
D:\A\a1\aaa.xml   D:\A\a2\ccc.xml  ……以此类推
D:\B\a1\bbb.xml  D:\B\a2\ddd.xml  ……以此类推
首先把D:\B\a1\bbb.xml 文件名改成对应D:\A\a1\aaa.xml的文件名    即改成D:\B\a1\aaa.xml
其它的以此类推

最后将改过名的XML文件按对应的目录拷贝到覆盖D:\A\下的相应子目录中的XML文件。
请高手帮忙,谢谢。最好有相应的注释
发表于 2018-4-2 17:31:09 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-4-2 18:11 编辑

对于a1,a2,……这样的文件夹,当且仅当每个文件夹下有一个文件时,才能根据a1,a2……这样的文件夹名找到对应的未加密文件,否则会混乱,这点你要补充,着重申明。
  1. @echo off
  2. set "加密目录=D:\test\A"
  3. set "未加密目录=D:\test\B"

  4. for /f "delims=" %%a in ('dir /a-d/s/b "%加密目录%\*.txt"') do (
  5.         set "diry=%%~dpa"
  6.         setlocal enabledelayedexpansion
  7.         for /f "delims=" %%b in ("!diry:~,-1!") do set "diry=%%~nb"
  8.         for /f "delims=" %%c in ('dir /a-d/s/b "%未加密目录%\!diry!\*.txt"') do ren "%%c" "%%~nxa"
  9.         endlocal
  10. )
  11. pause&exit
复制代码
 楼主| 发表于 2018-4-8 09:01:30 | 显示全部楼层
回复 2# yhcfsr

在出差才回来。非常感谢,研究一下。
 楼主| 发表于 2018-4-8 16:29:52 | 显示全部楼层
感谢没问题了
 楼主| 发表于 2018-4-8 16:30:18 | 显示全部楼层
@echo off
set "加密目录=G:\test2\A"
set "未加密目录=G:\test2\B"

rem 循环加密目录下的txt
for /f "delims=" %%a in ('dir /a-d/s/b "%加密目录%\*.xml"') do (
        echo %%a
        echo %%~dpa
        rem 把%%a的目录赋值给diry
        set  "diry=%%~dpa"
        setlocal enabledelayedexpansion
       
        for /f "delims=" %%b in ("!diry:~,-1!") do set "diry=%%~nb"
        echo !diry!
       
        for /f "delims=" %%c in ('dir /a-d/s/b "%未加密目录%\!diry!\*.xml"') do (
               
                        echo "开始处理未加密"
                        echo %%c
                        rem 重命名
                        ren "%%c" "%%~nxa"
                        echo %%~nxa
                        rem 复制文件
                        Xcopy /y %未加密目录%\!diry!\%%~nxa  "%加密目录%\!diry!\"
               
               
        )
       
        endlocal
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:19 , Processed in 0.018048 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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