[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. set "str=-----------"
  3. for /f "delims=" %%s in ('findstr /m /c:"%str%" *.txt') do (
  4.     findstr /n .* "%%s" > "%temp%\.tmp"
  5.     (
  6.         for /f "usebackq delims=" %%t in ("%temp%\.tmp") do (
  7.             set var=%%t
  8.             SetLocal EnableDelayedExpansion
  9.             if "!var:%str%=!" neq "!var!" (
  10.                 for /f "delims=" %%L in ("!var:%str%=!") do set var=%%L
  11.             )
  12.             echo,!var:*:=!
  13.             EndLocal
  14.         )
  15.     ) > "%%s"
  16. )
  17. del "%temp%\.tmp"
复制代码
如果要保留 -----------,请把 set var=%%L 改成 set var=%%L%str%

[ 本帖最后由 del 于 2010-5-24 12:23 编辑 ]

TOP

回复 4楼 的帖子

是退格符,可以改成任意文件中不存在的字符。

TOP

回复 6楼 的帖子

我这里测试正常。你是否修改了代码,如果没有,可否上传个样本?

TOP

回复 8楼 的帖子

  1. @echo off
  2. set "str=-----------"
  3. for /f "delims=" %%s in ('findstr /m /c:"%str%" *.txt') do call :sub "%%s"
  4. del "%temp%\.tmp"
  5. exit /b
  6. :sub
  7. findstr /n .* %1 > "%temp%\.tmp"
  8. (
  9.     for /f "usebackq delims=" %%t in ("%temp%\.tmp") do (
  10.         EndLocal
  11.         set var=%%t
  12.         SetLocal EnableDelayedExpansion
  13.         if "!var:%str%=!" neq "!var!" (
  14.             for /f "delims=" %%L in ("!var:%str%=!") do set var=%%L
  15.             echo,!var:*:=!
  16.             goto :eof
  17.         )
  18.         echo,!var:*:=!
  19.     )
  20. ) > %1
复制代码

TOP

返回列表