标题: [数值计算] [已解决]批处理怎样求数组对应数值的差并同一行依次输出? [打印本页]
作者: oyow 时间: 2011-4-25 17:03 标题: [已解决]批处理怎样求数组对应数值的差并同一行依次输出?
本帖最后由 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
就是这样的意思,向各位达人求解,谢谢
作者: CrLf 时间: 2011-4-25 18:45
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- for %%b in (%%a) do (
- for /f "tokens=1*" %%c in ("!last!") do (
- set /a c=1%%b-1%%c,c=c*101
- if !c! lss 0 (set cha=!cha! -!c:~-2!) else set cha=!cha! !c:~-2!
- set last=%%d
- )
- )
- if defined cha echo !cha!
- set cha=
- set last=%%a
- )
- pause
复制代码
作者: oyow 时间: 2011-4-25 19:43
非常感谢,显示出来了,但是我想把结果添加到文本中要像这样
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
作者: Batcher 时间: 2011-4-25 19:56
3# oyow - @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (a.txt) do (
- for %%b in (%%a) do (
- for /f "tokens=1*" %%c in ("!last!") do (
- set /a c=1%%b-1%%c,c=c*101
- if !c! lss 0 (
- set cha=!cha! -!c:~-2!
- ) else (
- set cha=!cha! !c:~-2!
- )
- set last=%%d
- )
- )
- echo %%a !cha!
- set cha=
- set last=%%a
- ))>b.txt
复制代码
作者: oyow 时间: 2011-4-25 20:22
谢谢,楼上问题解决了,强大
作者: oyow 时间: 2011-4-25 20:30
本帖最后由 oyow 于 2011-4-25 20:33 编辑
oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo
ooOKOKOKOKOKooOKOKOKOKOKOKOKOKoo
ooooooooOKooooooooooOKoooooooooo
ooooooooOKooooOKOKOKOKOKOKOKoooo
ooooooooOKooooOKooooooooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooooooOKooooOKooooOKooooOKoooo
ooooOKooOKooooooooOKooooOKoooooo
ooooooOKooooooooOKooooooooOKOKoo
ooooooooooooOKOKooooooooooooOKoo
oooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |