找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26519|回复: 3

[文本处理] 【已解决】BAT:筛选未出现数,没有未出现数时如何控制

[复制链接]
发表于 2015-2-25 01:22:58 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2015-2-25 22:11 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. pushd "D:\数据1"
  3. set n=100
  4. for /l %%a in (0 1 99) do set /a $!n:~1!=1,n+=1

  5. for %%a in (*.txt) do (
  6.   set "str= "
  7.   setlocal
  8.   for /f "delims=" %%b in (%%~snxa) do (
  9.      for %%c in (%%b) do set "$%%c="
  10.   )
  11.   for /f "delims==$" %%b in ('set $ ') do set str=!str! %%b
  12.   echo !str:~2!
  13.   endlocal
  14. )>"d:\数据2\%%~nxa"
  15. exit
复制代码
上述代码筛选文本数据的未出现数,当没有未出现数时,显示ECHO 处于关闭状态,如何修改代码,使输出文本为空。
发表于 2015-2-25 01:58:21 | 显示全部楼层
echo 改成 echo;

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

 楼主| 发表于 2015-2-25 08:57:18 | 显示全部楼层
回复 2# CrLf
还是显示:变量$没有定义,输出的文本也显示:ECHO 处于关闭状态。
发表于 2015-2-25 10:38:41 | 显示全部楼层
回复 3# 思想之翼


    第12行: in ('set $ 2^nul')
第13行:echo;!str:~2!

或者这样:
  1. @echo off
  2. pushd "D:\数据1"
  3. for /l %%a in (100 1 199) do set $%%a=1

  4. for %%a in (*.txt) do (
  5.   set "str= "
  6.   setlocal enabledelayedexpansion
  7.   for /f "delims=" %%b in (%%~snxa) do (
  8.      for %%c in (%%b) do set "$1%%c="
  9.   )
  10.   for /l %%b in (100 1 199) do if defined $%%b set "str=!str! %%b"
  11.   set "str=!str: 1= !"
  12.   echo;!str:~2!
  13.   endlocal
  14. )>"d:\数据2\%%~nxa"
  15. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:23 , Processed in 0.018708 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表