标题: [文本处理] 【已解决】批处理如何将文件名开头字符相同的文件进行合并? [打印本页]
作者: 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
- @echo off&(setlocal enabledelayedexpansion)>nul 2>nul
- for /f "delims=" %%i in ('dir/a-d/b/l/on ".\*.txt"')do (set "#new=%%~nxi"
- for /l %%j in (1,1,100)do (
- for /l %%n in (0,1,9)do (
- set "#new=!#new:%%n%%~xi=%%~xi!"
- set "#new=!#new: %%~xi=%%~xi!"
- )
- )
- if exist ".\!#new!\" echo, !#new! 文件夹存在可能无法创建文件,整理后继续&pause
- for /f "delims=" %%j in ('type ".\%%~nxi"')do (
- if not exist ".\!#new!\" if exist ".\!#new!" (
- (echo,%%j)>>".\!#new!"
- )else (
- (echo,%%j)>".\!#new!"
- )
- )
- )
- pause
复制代码
作者: pcl_test 时间: 2016-1-19 23:13
本帖最后由 pcl_test 于 2016-1-24 17:39 编辑
打酱油,假设LZ已处理序号排序及每个文本末行行尾换行的问题- /*&cls
- @echo off
- md "合并\"
- for /f "delims=" %%a in (
- 'dir /a-d /b *.txt^|findstr /i "[0-9]*[0-9]\.txt$"^|cscript -nologo -e:jscript "%~f0"'
- ) do copy /b "%%a*.txt" "合并\%%a.txt"
- pause&exit
- */
- var map ={}, s='';
- while(!WScript.StdIn.AtEndOfStream){
- var fn = WScript.StdIn.ReadLine().replace(/\s*\d+\.[^\.]+$/, '');
- if(!map[fn]){map[fn] = true;s+=fn+'\r\n';}
- }
- WSH.echo(s);
复制代码
作者: flyinnet9 时间: 2016-1-19 23:27
- @echo off
- md 合并 2>nul
- for /f "tokens=1 delims=0123456789" %%a in ('dir /a-d /b *.txt') do set #%%a=%%a
- for /f "tokens=2 delims==" %%a in ('set #') do copy /b %%a*.txt 合并\%%a.txt >nul
- echo.合并完成!
- 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 |