[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. cd.>output.txt
  3. for /f "delims=" %%i in ('findstr /n .* test.txt') do (
  4.         set "var=%%i"
  5.         setlocal enabledelayedexpansion
  6.         set var=!var:*:=!
  7. set "var=!var:\r\n=$!"
  8. set "var=!var:\n=$!"
  9. :lp
  10. set "str=!var:~0,1!"
  11. set "var=!var:~1!"
  12. if "!str!"=="$" (echo.>>output.txt) else (
  13.         set /p <nul ="!str!">>output.txt)
  14. if "!var!" NEQ "" goto :lp
  15.         endlocal
  16. )
  17. pause
复制代码
测试结果:
1

评分人数

    • 1332019995: 如果文件比较大的话读取时间有点长,而且如果 ...技术 + 1

TOP

本帖最后由 yhcfsr 于 2017-12-17 02:09 编辑

回复 3# 1332019995


    更新版:
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>temp.txt
  3. for /f "delims=" %%a in ('type test.txt') do (
  4. set /a num+=1
  5. set "str=%%a"
  6. set "str=!str:\r=!"
  7. set "str=!str:\n= !"
  8. call :lp %%str%%
  9. )
  10. goto :eof
  11. :lp
  12. set var=%*
  13. :lp1
  14. for /f "tokens=1 delims= " %%i in ("!var!") do (
  15. echo %%i>>temp.txt
  16. set "var=!var:%%i= !"
  17. if !var!. NEQ . (goto :lp1)
  18. )
  19. goto :eof
复制代码
测试不会忽略空格,抛弃之前的思路,这个更清晰简单,处理速度比之前快了很多,至少你提供的样本是秒输入。

TOP

返回列表