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

[文本处理] [已解决]批处理怎样从多文本批量取补集?

有若干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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

代码保存到txt文档的位置,试试看吧
  1. @echo off&md New 2>nul
  2. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  3.   set str=0123456789
  4.   (for /f "usebackq tokens=2 delims==" %%b in ("%%a") do (
  5.     set num=%%b
  6.     setlocal enabledelayedexpansion
  7.     call :lp
  8.     echo,!str!&endlocal
  9.   ))>"New\%%a"
  10. )
  11. goto :eof
  12. :lp
  13. if not "!num:~%n%!"=="" (
  14.   for %%c in ("!num:~%n%,1!") do set str=!str:%%~c=!
  15.   set/a n+=1&goto :lp
  16. )
复制代码

TOP

您好!谢谢你回复的批处理代码!怪我没有特意说明,批处理结果需要保留等号及等号前面的数值与符号,比如1+2=34,批处理后为1+2=01256789.望大师再次帮助!不胜感激!!

TOP

回复 3# 思想之翼

将代码保存在需要处理的txt文档的位置运行
  1. @echo off&md New 2>nul
  2. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  3.   set str=0123456789
  4.   (for /f "usebackq tokens=1,2 delims==" %%b in ("%%a") do (
  5.     set num=%%c
  6.     setlocal enabledelayedexpansion
  7.     call :lp
  8.     echo,%%b=!str!&endlocal
  9.   ))>"New\%%a"
  10. )
  11. goto :eof
  12. :lp
  13. if not "!num:~%n%!"=="" (
  14.   for %%a in ("!num:~%n%,1!") do set str=!str:%%~a=!
  15.   set/a n+=1&goto :lp
  16. )
复制代码
PS:"高手"、"大师"听起来很扎眼,建议楼主以后尽量不用。
1

评分人数

    • 思想之翼: 谢谢热心帮助。完美解决问题!技术 + 1

TOP

返回列表