[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qixiaobin0715 于 2022-8-27 10:19 编辑

翻出老帖练练手,兼顾数据重叠(多组数据重叠也会显示),只是不知对不对:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=-1
  4. for /f "tokens=1,2 delims=," %%i in (nums.txt) do (
  5.     set /a n+=1
  6.     set /a m=n/3
  7.     if !m! equ 0 (
  8.         if %%j gtr 4 set n=-1
  9.     ) else if !m! equ 1 (
  10.         if !n! equ 3 (
  11.             if %%j lss 7 (
  12.                 if %%j gtr 4 (
  13.                     set n=-1
  14.                 ) else (
  15.                     set n=2
  16.                 )
  17.             )
  18.         ) else (
  19.             if %%j lss 7 (
  20.                 if %%j gtr 4 (
  21.                     set n=-1
  22.                 ) else (
  23.                     set n=0
  24.                 )
  25.             )
  26.         )
  27.     ) else (
  28.         if %%j gtr -7 (
  29.             if %%j gtr 4 (
  30.                 set /a n-=7
  31.             ) else (
  32.                 set /a n-=6
  33.             )
  34.         ) else (
  35.             if !n! equ 8 (
  36.                 echo,%%i,%%j
  37.                 set n=2
  38.             )
  39.         )
  40.     )
  41. )
  42. pause
复制代码

TOP

优化一下自己楼上的代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=-1
  4. for /f "tokens=1,2 delims=," %%i in (a.txt) do (
  5.     set /a n+=1
  6.     set /a m=n/3
  7.     if !m! equ 0 (
  8.         if %%j gtr 4 set n=-1
  9.     ) else if !m! equ 1 (
  10.         if %%j lss 7 (
  11.             if %%j gtr 4 (
  12.                 set n=-1
  13.             ) else (
  14.                 if !n! equ 3 (
  15.                     set n=2
  16.                 ) else (
  17.                     set n=0
  18.                 )
  19.             )
  20.         )
  21.     ) else (
  22.         if %%j gtr -7 (
  23.             if %%j gtr 4 (
  24.                 set /a n-=7
  25.             ) else (
  26.                 set /a n-=6
  27.             )
  28.         ) else (
  29.             if !n! equ 8 (
  30.                 echo,%%i,%%j
  31.                 set n=2
  32.             )
  33.         )
  34.     )
  35. )
  36. pause
复制代码

TOP

返回列表