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

[文件操作] 批处理怎样合并同名文件?

[复制链接]
发表于 2013-6-17 09:32:37 | 显示全部楼层
貌似可以这样

  1. for %%a in (002 010 005 001 014) do (
  2.    copy "base\*.%%a" "按类合并\all%%a.txt"
  3. )
复制代码
f10好像是股票软件生成的2进制文件,才显示乱码。里面内容应该没必要添加。
 楼主| 发表于 2013-6-17 09:37:15 | 显示全部楼层
回复 35# Batcher


    老师:为什么没有“拷贝并合并的文件”这个文件夹你编写的程序就不能用了呢?
 楼主| 发表于 2013-6-17 09:42:17 | 显示全部楼层
回复 33# Batcher

老师:为什么没有“拷贝并合并的文件”这个文件夹你编写的程序就不能用了呢?
 楼主| 发表于 2013-6-17 09:43:08 | 显示全部楼层
回复 35# Batcher

老师:为什么没有“拷贝并合并的文件”这个文件夹你编写的程序就不能用了呢?
 楼主| 发表于 2013-6-17 09:43:43 | 显示全部楼层
回复 35# Batcher

老师:为什么没有“拷贝并合并的文件”这个文件夹你编写的程序就不能用了呢?
 楼主| 发表于 2013-6-17 09:52:08 | 显示全部楼层
回复 36# xxpinqz

原来的文件名请不要改。
发表于 2013-6-17 10:44:08 | 显示全部楼层
回复 39# zhjg5961
  1. @echo off
  2. cd /d "%~dp0"
  3. md 拷贝并合并的文件 2>nul
  4. for %%i in (002 010 005 001 014) do (
  5.     for %%j in ("Base\*.%%i") do (
  6.         type "%%j" >> "拷贝并合并的文件\%%~nj.txt"
  7.         echo,>>"拷贝并合并的文件\%%~nj.txt"
  8.     )
  9. )
  10. pause
复制代码
 楼主| 发表于 2013-6-17 13:24:18 | 显示全部楼层
回复 42# Batcher


谢谢老师!
我先试试,有问题再麻烦你。
发表于 2013-6-17 13:48:04 | 显示全部楼层
回复 43# zhjg5961


    不用单独发私信。直接回复我的帖子就行了,论坛程序会提醒我的。
 楼主| 发表于 2013-6-17 17:49:30 | 显示全部楼层
回复 16# Batcher

老师:
这个程序(16楼的)拷贝合并出来后,我仔细看了,不是按顺序合并的,能不能做到从小到大的顺序排序合并。
即:001——002——003——004——005——006——007——008——009——010——011——012——013——014——015——016——f10这样排序。
发表于 2013-6-17 18:05:50 | 显示全部楼层
本帖最后由 terse 于 2013-6-17 20:07 编辑

楼主全部合并 可不可以这样?
改为直接COPY 遍历后缀001文件 -- copy

  1. @echo off
  2. rd 合并的文件 2>nul
  3. md 合并的文件 2>nul
  4. for %%i in (base\*.001) do (
  5. copy "Base\%%~ni.*" "合并的文件\%%~ni.txt
  6. )
  7. pause
复制代码
排序的话
感觉copy 比 TYPE 来的快些

  1. @echo off
  2. set "files=合并的文件"
  3. set "exts=base\*.002 base\*.010 base\*.005 base\*.001 base\*.014"
  4. rd /s /q %files% 2>nul
  5. md %files% 2>nul
  6. for /f "delims=" %%i in ('dir /b /a-d %exts%') do (
  7.      if exist "%files%\%%~ni.txt" (
  8.         copy /b "%files%\%%~ni.txt"+"base\%%i" "%files%\%%~ni.txt" >nul
  9.      ) else copy /b "base\%%i" "%files%\%%~ni.txt" >nul
  10. )
  11. pause
复制代码
发表于 2013-6-17 20:48:00 | 显示全部楼层
回复 45# zhjg5961


    你把这些数字按照42楼的格式放在第四行就行了
 楼主| 发表于 2013-6-17 21:08:49 | 显示全部楼层
回复 47# Batcher


哦!
就是说按照16楼的方法是做不到的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 08:46 , Processed in 0.022325 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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