找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19347|回复: 1

[数值计算] 批处理找出文本中符合规定的数?

[复制链接]
发表于 2022-5-19 12:59:11 | 显示全部楼层 |阅读模式
本帖最后由 ngd 于 2022-5-19 13:00 编辑

表格中的内容大致如下:第一列是日期,第二列是库存量,第三列是每日进出量,正数是进库,负数是出库

日        存量        进出库
1        1         1
2        1         0
3        9         8
4        19         10
5        9         -10
6        1         -8
7        4         3
8        4         0
9        6         2
10        13         7
11        15         2
12        22         7
13        29         7
14        19         -10
15        11         -8
16        6         -5
17        8         2
18        8         0
19        17         9
20        27         10
21        19         -8
22        13         -6
23        10         -3
24        16         6
25        18         2
26        18         0
27        27         9
28        37         10
29        34         -3
30        27         -7
31        26         -1

找出一组数字 符合如下规律:
至少连续2日进出库小于等于3,接着连续2~4日大量进库累计大于等于15~30,再接着连续2~4日大量出库,回到大量进库前的库存量

示例中只有第1~6、7~16、这2组数字符合,输出第6、第16两日的日期和库存量
17~24这组由于连续4日出库后没有回到大量进库前的库存量所以不符合(第5日回到了进库前的库存量 但已经超出4日,所以不符合)
24~31这组由于大量出库后没有回到大量进库前的库存量所以也不符合
发表于 2022-5-19 18:14:56 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=1-3" %%i in (a.txt) do (
  3.     if defined c call :l %%i
  4.     if not defined c if %%k geq 0 set c=%%j
  5. )
  6. pause
  7. goto :eof

  8. :l
  9. set c=
  10. for /f "skip=%1 tokens=1-3" %%i in (a.txt) do (
  11.     if defined c (
  12.         set /a d=%%i-!r!
  13.         if !d! geq 4 if !d! leq 8 if %%k lss 0 if %%j equ !c! (
  14.             echo %%i %%j %%k
  15.             set c=
  16.             goto :eof
  17.         )
  18.     )
  19.     if not defined c if %%k geq 0 (
  20.         set r=%%i
  21.         set c=%%j
  22.     )
  23. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 23:18 , Processed in 0.016282 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表