[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
处理文本最后一行的方法很多,最不推荐的是 echo %%a | findstr 这种,不仅效率低下,遇到特殊字符(如:|、&、小括号)就挂掉。

以下为示例:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.txt) do (
  4.     set "s="
  5.     for /f "delims=" %%j in ('type "%%i"') do (
  6.         if defined s echo;!s!
  7.         set "s=%%j"
  8.     )
  9.     if defined s echo;@@@@!s!
  10. ) > "%%i.Log"
  11. pause
复制代码

TOP

  1. @echo off
  2. rem 源目录
  3. set "srcDir=E:\Test"
  4. echo;输入数字,逗号隔开,如输入:1,5,-1,-3 表示顺数第1行、第5行,倒数第1行、第3行。
  5. set /p s=
  6. for %%i in ("%srcDir%\*.txt") do (
  7.     setlocal enabledelayedexpansion
  8.     for /f %%j in ('find /v /c "" ^< "%%i"') do set n=%%j
  9.     for %%j in (!s!) do (
  10.         set /a "x = (n+1) * (%%j>>31&1) + %%j"
  11.         set "_!x!=@@@@"
  12.     )
  13.     for /f "delims=" %%j in ('findstr /n .* "%%i"') do (
  14.         set "s=%%j"
  15.         for /f "delims=:" %%k in ("%%j") do (echo;!_%%k!!s:*:=!)
  16.     )
  17.     endlocal
  18. ) > "%%i.Log"
  19. pause
复制代码
2

评分人数

    • 屡败屡战: 代码完美,有效解决了问题,谢谢老师技术 + 1
    • yhcfsr: 很完美,简洁效率,只一点,文件名有!时会出 ...技术 + 1

TOP

返回列表