不同文件夹下的同名文件的合并拷贝的批处理怎么写

microsofttyc 2010-05-06 01:01:28
如题:比如我有1,2,3。。。等等文件夹,里面有同名文件1.txt,2.txt,3.txt...等等,怎样将它合并拷贝到a文件夹下生成同名文件
...全文
601 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljc007 2010-05-07
  • 打赏
  • 举报
回复
test.bat

[code=BatchFile]@echo off
rem 假设1,2,3。。。等等文件夹保存在c:\Test\FolderA\下面
set srcFolder=C:\Test\FolderA
rem 假设合并之后的文件保存在c:\Test\FolderB\下面
set dstFolder=C:\Test\FolderB
for /r "%srcFolder%" %%a in (*.txt) do (
type "%%a" >>"%dstFolder%\%%~nxa"
)
[/code]
microsofttyc 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ljc007 的回复:]
test.bat


BatchFile code
@echo off
rem 假设1,2,3。。。等等文件夹保存在c:\Test\FolderA\下面
set srcFolder=C:\Test\FolderA
rem 假设合并之后的文件保存在c:\Test\FolderB\下面
set dstFolder=C:\Test\FolderB
for /r "%srcFolder%……
[/Quote]


谢谢007
我试过了,还是有点问题,会有重复的,且没有换行
例如我1,2,3文件夹下有 1.txt,2.txt,3.txt 里面的内容分别是1,2,3
我要的是
1
2
3
这样的结果
但运行你这段会出来
123123

microsofttyc 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 just4 的回复:]
其实没仔细看明楼主的意思,大致的就一句话:

BatchFile code
cd /d c:\test
md 1
md 2
md c
echo test1>1\1.txt
echo test2>1\2.txt
echo test3>1\3a.txt
echo test11>2\1.txt
echo test22>2\2.txt
echo test33>2\3b.txt
f……
[/Quote]

我试这条for /f "delims=" %i in ('dir 1\*.txt /b') do if exist "2\%i" copy "1\%i"+"2\%i" "c\%i" /y语句

例如我1,2文件夹下有 1.txt,2.txt 里面的内容分别是1,2

运行出来是:
12
而我要的正确的应该是:
1
2

microsofttyc 2010-05-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ljc007 的回复:]
test.bat


BatchFile code
@echo off
rem 假设1,2,3。。。等等文件夹保存在c:\Test\FolderA\下面
set srcFolder=C:\Test\FolderA
rem 假设合并之后的文件保存在c:\Test\FolderB\下面
set dstFolder=C:\Test\FolderB
for /r "%srcFolder%……
[/Quote]


运行结果是
1
2
3
1
2
3
我要的结果是:
1
2
3
就是just4 2010-05-07
  • 打赏
  • 举报
回复
其实没仔细看明楼主的意思,大致的就一句话:
[code=BatchFile]cd /d c:\test
md 1
md 2
md c
echo test1>1\1.txt
echo test2>1\2.txt
echo test3>1\3a.txt
echo test11>2\1.txt
echo test22>2\2.txt
echo test33>2\3b.txt
for /f "delims=" %i in ('dir 1\*.txt /b') do if exist "2\%i" copy "1\%i"+"2\%i" "c\%i" /y[/code]

反正就一条命令:for /f "delims=" %i in ('dir 1\*.txt /b') do if exist "2\%i" copy "1\%i"+"2\%i" "c\%i" /y,注意是命令,不是批处理哦,复制到cmd测试
ljc007 2010-05-07
  • 打赏
  • 举报
回复
test.bat

[code=BatchFile]@echo off
rem 假设1,2,3。。。等等文件夹保存在c:\Test\FolderA\下面
set srcFolder=C:\Test\FolderA
rem 假设合并之后的文件保存在c:\Test\FolderB\下面
set dstFolder=C:\Test\FolderB
for /r "%srcFolder%" %%a in (*.txt) do (
type "%%a" >>"%dstFolder%\%%~nxa"
echo,>>"%dstFolder%\%%~nxa"
)
[/code]
microsofttyc 2010-05-06
  • 打赏
  • 举报
回复
大哥多谢了,帮帮忙啊
古井荡月 2010-05-06
  • 打赏
  • 举报
回复
帮你喊一嗓子。
microsofttyc 2010-05-06
  • 打赏
  • 举报
回复
高人都哪儿去了007,just4呢
microsofttyc 2010-05-06
  • 打赏
  • 举报
回复
哪位大侠帮忙看看啊

6,872

社区成员

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

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