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

[数值计算] [已解决]批处理怎样求数组对应数值的差并同一行依次输出?

本帖最后由 oyow 于 2011-4-25 20:23 编辑

a.txt里有若干个数组,每组一行,用下面的数组的数减去上面的数组相同一列的数,并在下面数组的同一行隔开依次输出每次的差,例如:
a.txt里的数组:
08 75 23 86 77
03 45 68 96 33   
09 65 25 05 99

处理后的结果
08 75 23 86 77
03 45 68 96 33    -05  -30  45  10  -44
09 65 25 05 99     06  20  -43  -91  66
就是这样的意思,向各位达人求解,谢谢

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3. for %%b in (%%a) do (
  4. for /f "tokens=1*" %%c in ("!last!") do (
  5. set /a c=1%%b-1%%c,c=c*101
  6. if !c! lss 0 (set cha=!cha!  -!c:~-2!) else set cha=!cha!   !c:~-2!
  7. set last=%%d
  8. )
  9. )
  10. if defined cha echo !cha!
  11. set cha=
  12. set last=%%a
  13. )
  14. pause
复制代码

TOP

非常感谢,显示出来了,但是我想把结果添加到文本中要像这样
08 75 23 86 77
03 45 68 96 33    -05  -30  45  10  -44
09 65 25 05 99     06  20  -43  -91  66

TOP

3# oyow
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     for %%b in (%%a) do (
  5.         for /f "tokens=1*" %%c in ("!last!") do (
  6.             set /a c=1%%b-1%%c,c=c*101
  7.             if !c! lss 0 (
  8.                 set cha=!cha!  -!c:~-2!
  9.             ) else (
  10.                 set cha=!cha!   !c:~-2!
  11.             )
  12.             set last=%%d
  13.         )
  14.     )
  15.     echo %%a !cha!
  16.     set cha=
  17.     set last=%%a
  18. ))>b.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢,楼上问题解决了,强大

TOP

本帖最后由 oyow 于 2011-4-25 20:33 编辑

oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo
ooOKOKOKOKOKooOKOKOKOKOKOKOKOKoo
ooooooooOKooooooooooOKoooooooooo
ooooooooOKooooOKOKOKOKOKOKOKoooo
ooooooooOKooooOKooooooooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooOKooOKooooooooOKooooOKoooooo
ooooooOKooooooooOKooooooooOKOKoo
ooooooooooooOKOKooooooooooooOKoo
oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo

TOP

返回列表