标题: [文本处理] 【已解决】BAT:如何筛选未出现数 [打印本页]
作者: 思想之翼 时间: 2015-2-19 22:34 标题: 【已解决】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文本名称与原名称相同。若没有未出现的数据,则为空文本。
这样的代码如何写?恳望得到帮助。
作者: pcl_test 时间: 2015-2-19 23:43
回复 1# 思想之翼 - @echo off
- setlocal enabledelayedexpansion
- cd /d "D:\数据1\"
- set "fdir=D:\数据2\"
- if not exist "%fdir%" md "%fdir%"
- for /f "delims=" %%a in ('dir /b *.txt') do (
- >$ echo 0123456789
- set /p num=<$
- for /l %%i in (0 1 9) do (
- findstr "%%i" "%%a" >nul 2>nul && (>$ echo !num:%%i=!)
- set /p num=<$
- )
- move /y $ "%fdir%%%a"
- )
- cd /d "%fdir%"
- for /f "delims=" %%b in ('dir /b *.txt') do (
- findstr "处于关闭状态" "%%b" >nul 2>nul && cd.>"%%b"
- )
- pause
复制代码
作者: terse 时间: 2015-2-20 14:32
- @echo off & setlocal enabledelayedexpansion
- cd /d "D:\数据1\"
- md "D:\数据2\" 2>nul
- for /f "delims=" %%a in ('dir /b *.txt') do (
- set s=
- for /l %%i in (0 1 9) do (
- findstr %%i "%%a" >nul 2>nul ||set s=!s!%%i
- )
- >"D:\数据2\%%a" echo,!s!
- )
- pause
复制代码
作者: c755731262 时间: 2015-2-21 05:38
- @echo off&color f0
- if not exist d:\数据2\ md d:\数据2\
- for /f "delims=" %%a in ('dir /b d:\数据1\*.txt') do (
- (for /l %%i in (0,1,9) do (
- for /f "tokens=1-3" %%j in ('find /c "%%i" d:\数据1\%%a') do (
- if %%l == 0 echo %%i
- )
- )
- )>d:\数据2\%%a
- )
- pause
复制代码
回复 1# 思想之翼
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |