标题: [文本处理] [已解决]批处理怎样从多文本批量取补集? [打印本页]
作者: 思想之翼 时间: 2012-7-24 16:02 标题: [已解决]批处理怎样从多文本批量取补集?
有若干txt文本,每个文本记录数据的格式如下所示,欲批量取等号后的数字的补集,并归入新建的文件夹。说明:相对于0123456789十个数字,4的补集是012356789;123的补集是0456789。批处理结果需要保留等号及等号前面的数值与符号,比如1+2=34,批处理后为1+2=01256789.恳望高手相助!
1+2=4
1+3=3
1+4=0
1+5=2
2+3=7
2+4=4
2+5=6
3+4=3
3+5=5
4+5=2
1-2=4
1-3=3
1-4=0
1-5=2
2-3=1
2-4=4
2-5=2
3-4=3
3-5=1
4-5=2
1*2=0
1*3=0
1*4=0
1*5=0
2*3=2
2*4=0
2*5=8
3*4=0
3*5=6
4*5=0
作者: apang 时间: 2012-7-24 19:26
代码保存到txt文档的位置,试试看吧- @echo off&md New 2>nul
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- set str=0123456789
- (for /f "usebackq tokens=2 delims==" %%b in ("%%a") do (
- set num=%%b
- setlocal enabledelayedexpansion
- call :lp
- echo,!str!&endlocal
- ))>"New\%%a"
- )
- goto :eof
-
- :lp
- if not "!num:~%n%!"=="" (
- for %%c in ("!num:~%n%,1!") do set str=!str:%%~c=!
- set/a n+=1&goto :lp
- )
复制代码
作者: 思想之翼 时间: 2012-7-31 01:36
您好!谢谢你回复的批处理代码!怪我没有特意说明,批处理结果需要保留等号及等号前面的数值与符号,比如1+2=34,批处理后为1+2=01256789.望大师再次帮助!不胜感激!!
作者: apang 时间: 2012-7-31 10:27
回复 3# 思想之翼
将代码保存在需要处理的txt文档的位置运行- @echo off&md New 2>nul
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- set str=0123456789
- (for /f "usebackq tokens=1,2 delims==" %%b in ("%%a") do (
- set num=%%c
- setlocal enabledelayedexpansion
- call :lp
- echo,%%b=!str!&endlocal
- ))>"New\%%a"
- )
- goto :eof
-
- :lp
- if not "!num:~%n%!"=="" (
- for %%a in ("!num:~%n%,1!") do set str=!str:%%~a=!
- set/a n+=1&goto :lp
- )
复制代码
PS:"高手"、"大师"听起来很扎眼,建议楼主以后尽量不用。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |