[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
像这种情况,最好在网盘上传一个真实文件,便于大家测试用。

TOP

本帖最后由 qixiaobin0715 于 2023-9-27 14:50 编辑

回复 20# kokoxx
使用变量迭代法不知是否可行。这样可以防止定义变量太多而引起的效率不高的问题:
  1. @echo off
  2. chcp 65001>nul
  3. for /f "delims=" %%I in ('dir /b /a-d *.txt') do (
  4.     setlocal enabledelayedexpansion
  5.     set n=1
  6.     (for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%%I"') do (
  7.         set /a n+=1
  8.         set s1=!s2!
  9.         set s2=!s3!
  10.         set s3=%%j
  11.         if defined s3 (
  12.             set s=!s3:.html=!
  13.             if not "!s!"=="!s3!" (
  14.                 set n=0
  15.                 echo,
  16.             )
  17.         )
  18.         if !n! geq 4 echo,!s1!
  19.     )
  20.     if !n! geq 3 (
  21.         echo,!s2!
  22.         echo,!s3!
  23.     ) else if !n! equ 2 (
  24.         echo,!s3!
  25.     ))>temp
  26.     move "temp" "%%I"
  27.     endlocal
  28. )
  29. pause
复制代码
代码未经测试,可能有问题,思路应当是对的。

TOP

本帖最后由 qixiaobin0715 于 2023-9-27 20:35 编辑

回复 22# kokoxx
行数过多的话可以这样写比较简洁一些:
  1. for /l %%i in (-4,1,2) do (...
复制代码

TOP

回复 18# kokoxx
  1. @echo off
  2. chcp 65001>nul
  3. set /a _"猜你喜欢"=_"更多推荐"=1
  4. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  5.     (for /f "tokens=1,2* delims=::" %%a in ('findstr /n .* "%%i"') do (
  6.         if defined _"%%b" (
  7.             echo,
  8.         ) else (
  9.             if "%%c"=="" (
  10.                 echo,%%b
  11.             ) else (
  12.                 echo,%%b:%%c
  13.             )
  14.         )
  15.     ))>temp
  16. move "temp" "%%i"
  17. )
  18. pause
复制代码

TOP

回复 8# kokoxx
  1. @echo off
  2. chcp 65001>nul
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%i"') do (
  5.         if "%%b"=="" (
  6.             echo,
  7.         ) else (
  8.             for /f "tokens=1,2* delims=0123456789 " %%j in ("%%b") do (
  9.                 if "%%j%%k"=="第章" (
  10.                     if "%%l"=="此行不做添加空行处理" (
  11.                         echo,%%b
  12.                     ) else (
  13.                         echo,
  14.                         echo,
  15.                         echo,
  16.                         echo,%%b
  17.                         echo,
  18.                         echo,
  19.                         echo,
  20.                     )
  21.                 ) else (
  22.                     echo,%%b
  23.                 )
  24.             )
  25.         )
  26.     ))>temp
  27. move "temp" "%%i"
  28. )
  29. pause
复制代码

TOP

返回列表