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

[文本处理] 【已解决】BAT:如何筛选未出现数

本帖最后由 思想之翼 于 2015-2-20 23:00 编辑

D:/数据1/内有若干txt文本
每个文本内的数据格式为:
124
或者为:
159
456
357
或者为:
159 456 457

现在欲筛选出每个文本在0-9之间未出现的数据
比如: 文本内数据是124,则未出现的数据是0356789
再比如:文本内数据是
159
456
357
则未出现的数据是028

将筛选出的未出现的数据,写入D:/数据2/,txt文本名称与原名称相同。若没有未出现的数据,则为空文本。

这样的代码如何写?恳望得到帮助。

回复 1# 思想之翼
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "D:\数据1\"
  4. set "fdir=D:\数据2\"
  5. if not exist "%fdir%" md "%fdir%"
  6. for /f "delims=" %%a in ('dir /b *.txt') do (
  7. >$ echo 0123456789
  8. set /p num=<$
  9. for /l %%i in (0 1 9) do (
  10. findstr "%%i" "%%a" >nul 2>nul && (>$ echo !num:%%i=!)
  11. set /p num=<$
  12. )
  13. move /y $ "%fdir%%%a"
  14. )
  15. cd /d "%fdir%"
  16. for /f "delims=" %%b in ('dir /b *.txt') do (
  17. findstr "处于关闭状态" "%%b" >nul 2>nul && cd.>"%%b"
  18. )
  19. pause
复制代码
1

评分人数

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. cd /d "D:\数据1\"
  3. md "D:\数据2\" 2>nul
  4. for /f "delims=" %%a in ('dir /b *.txt') do (
  5.     set s=
  6.     for /l %%i in (0 1 9) do (
  7.         findstr %%i "%%a" >nul 2>nul ||set s=!s!%%i
  8.     )
  9.     >"D:\数据2\%%a" echo,!s!
  10. )
  11. pause
复制代码
1

评分人数

TOP

  1. @echo off&color f0
  2. if not exist d:\数据2\ md d:\数据2\
  3. for /f "delims=" %%a in ('dir /b d:\数据1\*.txt') do (
  4. (for /l %%i in (0,1,9) do (
  5. for /f "tokens=1-3" %%j in ('find /c "%%i" d:\数据1\%%a') do (
  6. if %%l == 0 echo %%i
  7. )
  8. )
  9. )>d:\数据2\%%a
  10. )
  11. pause
复制代码
回复 1# 思想之翼
1

评分人数

TOP

返回列表