高分求关于批处理复制文件名的问题

quickpass 2009-02-25 05:27:19
大家好!

讨教个问题,我有2个文件夹假设是A文件夹和B文件夹(下面简称A B)。

A和B的文件名需要一模一样,但文件内容是不一样的。

A里面有500个word文件,其文件名是不规则的。

现B有一个模板复制了500份,其文件名也是不规则的,怎样做一个批处理使B的文件名和A的一样?

谢谢各位帮忙!
...全文
332 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
janser08 2009-03-11
  • 打赏
  • 举报
回复
强人,我是来拜007的
lin29276 2009-03-11
  • 打赏
  • 举报
回复
for /f "usebackq skip=%2 delims=" %%a in ("%Temp%\ListB.txt") do (
ren "%DstFolder%\%%a" "%1"
goto :eof
baichishe 2009-03-10
  • 打赏
  • 举报
回复
确实有意思
elitel 2009-03-10
  • 打赏
  • 举报
回复
学习
quickpass 2009-02-27
  • 打赏
  • 举报
回复
再次感谢!
浴火_凤凰 2009-02-26
  • 打赏
  • 举报
回复
顶。。。
Forever_Young 2009-02-26
  • 打赏
  • 举报
回复
007的这个批处理能够处理内容不一样的文件?
ljc007 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Forever_Young 的回复:]
007的这个批处理能够处理内容不一样的文件?
[/Quote]
我的理解是,楼主不需要判断word文档里面的内容^_^
ljc007 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fzzlz 的回复:]
不行吧,用工具了。
[/Quote]
请问你是如何测试2楼代码的?怎样得出“不行吧”的结论呢?
fzzlz 2009-02-26
  • 打赏
  • 举报
回复
不行吧,用工具了。
quickpass 2009-02-26
  • 打赏
  • 举报
回复
B里也是word文档啊,我说的模板意思是500个word文档都套用的一个模板。
jyh_baoding 2009-02-26
  • 打赏
  • 举报
回复
同意楼上
ljc007 2009-02-26
  • 打赏
  • 举报
回复
[code=BatchFile]@echo off
setlocal enabledelayedexpansion
rem 指定源文件夹路径
set SrcFolder=C:\test\A
rem 指定目标文件夹路径
set DstFolder=C:\test\B
rem 计数器初始化
set count=0
rem 生成文件名列表
>"%Temp%\ListA.txt" dir /b "%SrcFolder%"
>"%Temp%\ListB.txt" dir /b "%DstFolder%"
rem 修改第一个文件名
set /p FirstA=<"%Temp%\ListA.txt"
set /p FirstB=<"%Temp%\ListB.txt"
ren "%DstFolder%\%FirstB%" "%FirstA%"
rem 修改剩下的所有文件名
for /f "usebackq skip=1 delims=" %%a in ("%Temp%\ListA.txt") do (
rem 计数器加1
set /a count+=1
rem 调用改名子过程
call :SyncName %%a !count!
)
endlocal
rem 打完手工
goto :eof
rem 改名子过程
:SyncName
for /f "usebackq skip=%2 delims=" %%a in ("%Temp%\ListB.txt") do (
ren "%DstFolder%\%%a" "%1"
goto :eof
)[/code]
如果对批处理感兴趣,建议找个批处理论坛,系统地学习一下。
quickpass 2009-02-26
  • 打赏
  • 举报
回复
谢谢2楼的朋友,是不需要判断word文档里的内容。
用你的方法已经解决了,不知可否注解一下,想学习学习。
非常感谢!!!
再见品月 2009-02-25
  • 打赏
  • 举报
回复
顶。。。LS
ljc007 2009-02-25
  • 打赏
  • 举报
回复
[code=BatchFile]@echo off
setlocal enabledelayedexpansion
set SrcFolder=C:\test\A
set DstFolder=C:\test\B
set count=0
>"%Temp%\ListA.txt" dir /b "%SrcFolder%"
>"%Temp%\ListB.txt" dir /b "%DstFolder%"
set /p FirstA=<"%Temp%\ListA.txt"
set /p FirstB=<"%Temp%\ListB.txt"
ren "%DstFolder%\%FirstB%" "%FirstA%"
for /f "usebackq skip=1 delims=" %%a in ("%Temp%\ListA.txt") do (
set /a count+=1
call :SyncName %%a !count!
)
endlocal
goto :eof
:SyncName
for /f "usebackq skip=%2 delims=" %%a in ("%Temp%\ListB.txt") do (
ren "%DstFolder%\%%a" "%1"
goto :eof
)[/code]
Forever_Young 2009-02-25
  • 打赏
  • 举报
回复
依据什么来判断呢?B里面是模板,A里面是word文档,这两种文件没有任何可比性啊。

如果你A,B里面都是一样的文件,就是文件名不同还有得搞。

6,850

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧