2017-02-10 149 views

回答

2
@echo off & setlocal 

>outfile.csv (
    for /f "tokens=1* delims=:" %%I in (
     'findstr /n "^" infile.csv ^| findstr /v "^2:"' 
    ) do echo(%%J 
) 

要遵循这个剧本的逻辑,由内而外的阅读内容。第一个findstr将读取infile.csv并在每行上添加行号。管道第二个findstr命令将排除以2:开头的所有行。外部的for /F将去掉前缀的行号。整个事情被转储到outfile.csv

4
@echo off 
setlocal EnableDelayedExpansion 

rem Read lines from input.csv 
< input.csv (

    rem Read and copy the first line 
    set /P "line=" 
    echo(!line! 

    rem Just read the second line 
    set /P "line=" 

    rem Copy the rest of lines 
    findstr "^" 

) > output.csv 
+0

我喜欢它。 +1。我建议在'echo(!line)'之前禁用延迟扩展功能,以避免在数据中出现重复的感叹号。 – rojo

+2

@rojo:在这段代码中没有任何可能的延迟扩展问题! '** – Aacini

+0

我想你是对的!我没有意识到'set/P'与延迟扩展的'set'不同。有趣! – rojo

相关问题