标题: [文本处理] 【已解决】BAT:筛选未出现数,没有未出现数时如何控制 [打印本页]
作者: 思想之翼 时间: 2015-2-25 01:22 标题: 【已解决】BAT:筛选未出现数,没有未出现数时如何控制
本帖最后由 思想之翼 于 2015-2-25 22:11 编辑
- @echo off&setlocal enabledelayedexpansion
- pushd "D:\数据1\"
- set n=100
- for /l %%a in (0 1 99) 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 $ ') do set str=!str! %%b
- echo !str:~2!
- endlocal
- )>"d:\数据2\%%~nxa"
- exit
复制代码
上述代码筛选文本数据的未出现数,当没有未出现数时,显示ECHO 处于关闭状态,如何修改代码,使输出文本为空。
作者: CrLf 时间: 2015-2-25 01:58
echo 改成 echo;
作者: 思想之翼 时间: 2015-2-25 08:57
回复 2# CrLf
还是显示:变量$没有定义,输出的文本也显示:ECHO 处于关闭状态。
作者: apang 时间: 2015-2-25 10:38
回复 3# 思想之翼
第12行: in ('set $ 2^nul')
第13行:echo;!str:~2!
或者这样:- @echo off
- pushd "D:\数据1\"
- for /l %%a in (100 1 199) do set $%%a=1
-
- for %%a in (*.txt) do (
- set "str= "
- setlocal enabledelayedexpansion
- for /f "delims=" %%b in (%%~snxa) do (
- for %%c in (%%b) do set "$1%%c="
- )
- for /l %%b in (100 1 199) do if defined $%%b set "str=!str! %%b"
- set "str=!str: 1= !"
- echo;!str:~2!
- endlocal
- )>"d:\数据2\%%~nxa"
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |