返回列表 发帖
@echo off
echo.>3.txt
setlocal enabledelayedexpansion
for /f "delims=;" %%i in (1.txt) do (
set a=%%i
set b=!a:~3,1!
if !b!==0 echo !a!>>3.txt
set c=!a:~4,1!
if !c!==0 echo !a!>>3.txt)COPY
1.txt为原文件,3.txt为按你要求提取后的文件
这个代码可以可以达到你的要求。

但for里面的语句我感觉应该还可以再精简的,但我自己减了直接运行出错了。。希望有大侠能指点下
1

评分人数

TOP

回复 4# codegay


    findstr不熟悉,我要再多试试
    我for代码中截断语句用了3行来完成。能不能跟在非循环语句中一样,直接一句搞定?
2

评分人数

TOP

回复 8# 172788876

我今天又测试了下,是可以的啊
能否详细描述下你的操作?

TOP

本帖最后由 sishentibu 于 2016-3-5 19:49 编辑

回复 13# 172788876


    把你的文档转码下就可以读取了、
我自己用代码运行完了后,发现好多的干扰项
按我的理解,你想要的是类似需要的,然后序号末尾是0的项吧?
然后我又加了个判断
    @echo off
    echo.>3.txt
    setlocal enabledelayedexpansion
    for /f "delims=;" %%i in (1.txt) do (
    set a=%%i
    set b=!a:~3,1!
set c=!a:~4,1!
set d=!a:~5,1!
     if !b!==0 (if !c!==^  echo !a!>>3.txt)
     if !c!==0 (if !d!==^  echo !a!>>3.txt))COPY
http://pan.baidu.com/s/1bogixm3

TOP

返回列表