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

[文本处理] [已解决]给BAT代码增加排除包含字符===的行

for /f %%a in ('type a.txt^|find /c /v ""')do set old=%%a
如何给上面的代码里增加一个排除包含字符===的行的功能?
例如
不统计文本里包含===的行
注意不得破坏代码原有的功能
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

为啥不直接把find 查找里输入===???

TOP

注意不得破坏代码原有的功能

代码本来就不完整,想破坏都无从下手咧
试试在""之间填上三个等于符号。。。

TOP

试过,不行

TOP

回复 3# apang


    @echo off

set outfile=a.txt

for /f %%a in ('type a.txt^|find /c /v "=="')do set old=%%a

echo %date% %time%>>a.txt
echo ======2313131323====>>a.txt
echo 000%date% %time%>>a.txt
echo ==000000000===>>a.txt

for /f %%a in ('type a.txt^|find /c /v "=="')do set b1=%%a

echo 新增行内容:
set /a new=%b1%-%old%
if %old% neq %b1% (
        more +%old% %outfile%&&echo 新增%new%行
) 2>nul
pause

可排除,但是echo 新增行内容:这里会显示错误,不准确

TOP

  1. @echo off
  2. ::set outfile=a.txt
  3. if not exist a.txt cd.>a.txt
  4. for /f %%a in ('find /c /v ""^<a.txt') do set old=%%a
  5. echo %date% %time%>>a.txt
  6. echo ======2313131323====>>a.txt
  7. echo 000%date% %time%>>a.txt
  8. echo ==000000000===>>a.txt
  9. echo 新增行内容:
  10. more +%old% a.txt
  11. for /f %%a in ('more +%old% a.txt^|find /c /v "=="') do (
  12.   echo 新增%%a行
  13. )
  14. pause
复制代码
1

评分人数

    • wh1234567: 第10行改改more +%old% a.txt|find /v &quot;==技术 + 1

TOP

本帖最后由 wh1234567 于 2012-7-20 00:22 编辑

回复 6# apang


    不想让带==的行在新增行内容下显示出来

TOP

还是建议楼主把txt的内容放上来吧。。。

TOP

回复 7# wh1234567

呃,真受不了你,挤牙膏似的。。。
第10行改改more +%old% a.txt|find /v "=="
再不行,偶放弃。。。

TOP

可以先用findstr把包含===的行排除,再嵌循环

TOP

返回列表