标题: [文本处理] 【已解决】BAT:筛选文本中数据的未出现数,如何添加限制条件 [打印本页]
作者: 思想之翼 时间: 2015-3-14 19:12 标题: 【已解决】BAT:筛选文本中数据的未出现数,如何添加限制条件
本帖最后由 思想之翼 于 2015-3-14 21:22 编辑
- @echo off&setlocal enabledelayedexpansion
- pushd "D:\数据1\"
- set n=10
- for /l %%a in (0 1 9) do set /a $!n:~1!=1,n+=1
-
- for %%a in (*.txt) do (
- set "str= "
- setlocal
- for /f "delims=" %%b in (%%~snxa) do (
- for %%c in (%%b) do set "$%%c="
- )
- for /f "delims==$" %%b in ('set $ 2^nul') do set str=!str! %%b
- echo;!str:~2!
- endlocal
- )>"d:\数据2\%%~nxa"
- exit
复制代码
上述代码是提取0-9之间数据的未出现数。比如文本数据为1 3 6 8,则未出现数据为0 2 4 5 7 9
现在欲在上述代码中添加一个限制:当未出现数的个数大于5时,输出的文本数据为 空+回车键。比如上例未出现数据为0 2 4 5 7 9,则输出的文本数据为 空+回车键。
如何修改代码?恳望得到帮助。
作者: bailong360 时间: 2015-3-14 20:03
本帖最后由 bailong360 于 2015-3-14 21:49 编辑
- @Echo Off
- SetLocal EnableDelayedExpansion
- Pushd "D:\数据\1"
- For %%h In (*.txt) Do (
- Set N=0
- For /F "Delims=" %%i In (%%~snxh) Do (
- For %%j In (%%i) Do Set .%%j=0
- )
- For /L %%i In (0 1 9) Do If Not Defined .%%i (Set /A N+=1&Set Num=!Num! %%i)
- (If !N! GTR 5 (Echo; ) Else Echo%Num% )>"D:\数据2\%%~nxh"
- )
复制代码
符合要求否?
抱歉,顺手复制没考虑其他的了
作者: 思想之翼 时间: 2015-3-14 20:22
回复 2# bailong360
感谢帮助!
您的代码经过测试,出错:输出非文本,打不开,名称是%~nxa
作者: pcl_test 时间: 2015-3-14 20:49
本帖最后由 pcl_test 于 2015-3-14 20:50 编辑
回复 1# 思想之翼 - @echo off&setlocal enabledelayedexpansion
- pushd "D:\数据1\"
- set n=10
- for /l %%a in (0 1 9) do set /a $!n:~1!=1,n+=1
-
- for %%a in (*.txt) do (
- set "str= "
- setlocal
- for /f "delims=" %%b in (%%~snxa) do (
- for %%c in (%%b) do set "$%%c="
- )
- set m=1
- for /f "delims==$" %%b in ('set $ 2^nul') do set str=!str! %%b & set /a m+=1
- if !m! gtr 5 (echo;) else (echo;!str:~2!)
- endlocal
- )>"D:\数据2\%%~nxa"
- exit
复制代码
作者: bailong360 时间: 2015-3-14 21:50
回复 3# 思想之翼
已修改
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |