使用前请备份,以免数据丢失。还有可以先用部分数据测试。
其中 “Tmp_原名” 为中间文件,即去掉含 “错误” 字符串的行,因为无法整合处理,所以改用临时文件。
“new_原名” 为最终生成文件。- @echo off
- echo 使用前请先备份好数据……
- echo 备份好后按任意键开始。
- pause>nul
- if not exist Not12\ md Not12
- for /f "delims=" %%X in ('dir/b *.txt') do (
- set flag=
- call :wordErr "%%X"
- call :judge12 "Tmp_%%X"
- if not defined flag for /f "usebackq skip=1 tokens=1-12* delims=∥" %%a in ("Tmp_%%X") do (
- if not exist "new_%%X" call :firstL "%%X"
- echo %%a∥%%b∥?∥%%d∥%%e∥%%f∥%%g∥%%h∥%%i∥%%j∥%%k∥%%l>>"new_%%X"
- )
- )
- pause
-
- :firstL
- set/p first=<%1
- echo %first%>"new_%~1"
- goto :eof
- :judge12
- for /f "usebackq skip=1 tokens=1-12* delims=∥" %%a in (%1) do (
- if "%%l"=="" set flag=1
- if not "%%m"=="" set flag=1
- )
- if defined flag move "%~1" Not12
- goto :eof
- :wordErr
- cd.>"Tmp_%~1"
- for /f "delims= eol=" %%i in ('findstr /v "<<錯誤>>" %1') do (
- echo+%%i>>"Tmp_%~1"
- )
复制代码
|