Board logo

标题: [文本处理] 【已解决】批处理如何将文件名开头字符相同的文件进行合并? [打印本页]

作者: wzf1024    时间: 2016-1-19 19:58     标题: 【已解决】批处理如何将文件名开头字符相同的文件进行合并?

本帖最后由 wzf1024 于 2016-2-19 20:38 编辑

有很多txt文件,如:
中国01.txt
中国02.txt
中国03.txt
伊朗01.txt
伊朗02.txt
美国01.txt
美国02.txt
……
如何分别合并文件名相同但序号不同的文件,最后得到:
中国.txt
伊朗.txt
美国.txt
……
作者: /zhqsystem/zhq    时间: 2016-1-19 22:36

回复 1# wzf1024
  1. @echo off&(setlocal enabledelayedexpansion)>nul 2>nul
  2. for /f "delims=" %%i in ('dir/a-d/b/l/on ".\*.txt"')do (set "#new=%%~nxi"
  3. for /l %%j in (1,1,100)do (
  4.   for /l %%n in (0,1,9)do (
  5.    set "#new=!#new:%%n%%~xi=%%~xi!"
  6.    set "#new=!#new: %%~xi=%%~xi!"
  7.   )
  8. )
  9. if exist ".\!#new!\" echo, !#new! 文件夹存在可能无法创建文件,整理后继续&pause
  10. for /f "delims=" %%j in ('type ".\%%~nxi"')do (
  11.   if not exist ".\!#new!\" if exist ".\!#new!" (
  12.    (echo,%%j)>>".\!#new!"
  13.   )else (
  14.    (echo,%%j)>".\!#new!"
  15.   )
  16. )
  17. )
  18. pause
复制代码

作者: pcl_test    时间: 2016-1-19 23:13

本帖最后由 pcl_test 于 2016-1-24 17:39 编辑

打酱油,假设LZ已处理序号排序及每个文本末行行尾换行的问题
  1. /*&cls
  2. @echo off
  3. md "合并\"
  4. for /f "delims=" %%a in (
  5.     'dir /a-d /b *.txt^|findstr /i "[0-9]*[0-9]\.txt$"^|cscript -nologo -e:jscript "%~f0"'
  6. ) do copy /b "%%a*.txt" "合并\%%a.txt"
  7. pause&exit
  8. */
  9. var map ={}, s='';
  10. while(!WScript.StdIn.AtEndOfStream){
  11.     var fn = WScript.StdIn.ReadLine().replace(/\s*\d+\.[^\.]+$/, '');
  12.     if(!map[fn]){map[fn] = true;s+=fn+'\r\n';}
  13. }
  14. WSH.echo(s);
复制代码

作者: flyinnet9    时间: 2016-1-19 23:27

  1. @echo off
  2. md 合并 2>nul
  3. for /f "tokens=1 delims=0123456789" %%a in ('dir /a-d /b *.txt') do set #%%a=%%a
  4. for /f "tokens=2 delims==" %%a in ('set #') do copy /b %%a*.txt 合并\%%a.txt >nul
  5. echo.合并完成!
  6. pause
复制代码

作者: wzf1024    时间: 2016-1-19 23:57

回复 3# pcl_test


    每个文件复制了4遍
作者: pcl_test    时间: 2016-1-20 00:02

回复 5# wzf1024

怎么测试的
作者: wzf1024    时间: 2016-1-20 00:09

本帖最后由 wzf1024 于 2016-1-20 00:20 编辑

回复 4# flyinnet9


    序号之前存在数字的文件也被复制一份到创建的文件夹了,如何避免?比如:
兼具“络穴”“八脉交会穴”2种属性的穴位除外[ ].txt

会在创建的文件夹中出现一个:
兼具“络穴”“八脉交会穴”.txt

实际上它是无辜的
作者: wzf1024    时间: 2016-1-20 00:18

回复 6# pcl_test


    抱歉,再次测试没有出现问题,但是子文件夹下的文件不能操作,如何包括子文件夹下的文件?
作者: 回家路上    时间: 2016-1-20 12:41

回复 7# wzf1024


这个规则有点儿diǎo。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2