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

[文本处理] [已解决]批处理如何从多个txt文本批量取补集?

有若干txt文本,每个txt文本只记录了一行0-9的数据,现在需要批量求每个文本的补集。比如:一个命名为01的txt文本,记录的数据是12,其相对于0123456789的补集是03456789,该文本批处理后命名为01-1,记录的数据是03456789。将批处理后的文本放在一个新建的文件夹中。恳望大师出手相助!
1

评分人数

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

不知道能不能满足你的要求,其实转变思路就很简单
@echo off
setlocal enableDelayedExpansion
set /p str=<01.txt
set str1=0123456789
call set "str1=%%str1:!str!=%%"
echo !str1!>01-1.txt

TOP

本帖最后由 weichenxiehou 于 2012-7-8 11:28 编辑

回复 2# poter
我发现你回帖没有养成将代码括起来的习惯哦,热情很高,值得鼓励,但也要适当注意一下论坛的规则,用【code】和【/code】(这里中括号为英文状态下的)将代码括起来或者使用回复框里的“代码”按钮。鄙人不是管理人员,只是友善地提醒一下,原来管理层打压这些不规范现象很严厉的,现在稍微有点儿放松了。
看得多说得多,远比不上写得多。

TOP

本帖最后由 apang 于 2012-7-8 11:50 编辑

是不是这意思:
  1. @echo off&setlocal enabledelayedexpansion
  2. md result 2>nul
  3. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  4.   set str=0123456789&set n=0
  5.   set/p m=<%%a
  6.   call :lp
  7.   echo !str!>"result\%%~na-1%%~xa"
  8. )
  9. goto :eof
  10. :lp
  11. if not "!m:~%n%!"=="" set v=!m:~%n%,1!&call set str=%%str:!v!=%%&set/a n+=1&goto :lp
复制代码
1

评分人数

TOP

谢谢!这么快就回帖!代码完美解决问题!运行速度也快!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. md new
  3. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  4.   for /l %%b in (0 1 9) do find "%%b" "%%a" >nul||set n=!n!%%b
  5.   echo,!n!>new\%%~na-1.txt&set n=
  6. )
  7. pause
复制代码

TOP

回复 3# weichenxiehou


    谢谢你,但我发现那个标签框不是太好用,点选复制代码,然后再粘贴到txt里全是格式错乱

另外如果在代码框里用框选,复制粘贴到文本,除了第一行外,其余行都会多出一个空格

所以不太习惯那个东西

TOP

回复 7# poter
哦,你那里复制有这些问题吗?我这里复制没有任何问题,不过我是用的ie,可能你用的其他浏览器吧,还是尽量括起来吧,美观不说,别人复制可能没问题哦。
看得多说得多,远比不上写得多。

TOP

回复 7# poter


    你使用的是什么浏览器?哪个版本?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表