标题: [文本处理] [已解决]如何用批处理得出文本数字行内位数之间的差 [打印本页]
作者: qzwifi 时间: 2012-10-7 23:37 标题: [已解决]如何用批处理得出文本数字行内位数之间的差
本帖最后由 qzwifi 于 2012-10-8 13:14 编辑
例:
文本a.txt内容为:
01 02 03 04 05 06
01 02 03 04 05 07
01 02 03 04 05 08
求每一行数字位数之间的差,保存为b.txt
比如:
01 02 03 04 05 06
01与02 之间差1
02与03 之间差1
03与04 之间差1
04与05 之间差1
05与06 之间差1
所以01 02 03 04 05 06这一行位数之间的差是 1 1 1 1 1
01 02 03 04 05 07
01与02 之间差1
02与03 之间差1
03与04 之间差1
04与05 之间差1
05与07 之间差2
所以01 02 03 04 05 07这一行位数之间的差是 1 1 1 1 2
01 02 03 04 05 08
01与02 之间差1
02与03 之间差1
03与04 之间差1
04与05 之间差1
05与08 之间差3
所以01 02 03 04 05 08这一行位数之间的差是 1 1 1 1 3
------------------------
因而文本a.txt内容:
01 02 03 04 05 06
01 02 03 04 05 07
01 02 03 04 05 08
处理后得出行内位数之间的差保存为b.txt
1 1 1 1 1
1 1 1 1 2
1 1 1 1 3
作者: FOR 时间: 2012-10-8 01:54
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1* delims= " %%i in (a.txt) do (
- set /a n=1%%i&set "m="
- for %%a in (%%j) do (
- set /a n-=1%%a
- set m=!m! !n!
- set /a n=1%%a
- )
- echo %%i %%j 位数之间的差是!m:-=!
- )
- pause
复制代码
作者: qzwifi 时间: 2012-10-8 03:18
回复 2# FOR
FOR 你好,非常感谢你的代码,是可行的。但与我想要的保存的格式上有一点出入。。。
你的代码运行后是:
01 02 03 04 05 06 位数之间的差是 1 1 1 1 1
01 02 03 04 05 07 位数之间的差是 1 1 1 1 2
01 02 03 04 05 08 位数之间的差是 1 1 1 1 3
但我想要的是直接就保存为b.txt:
1 1 1 1 1
1 1 1 1 2
1 1 1 1 3
不要前面的:
01 02 03 04 05 06 位数之间的差是
01 02 03 04 05 07 位数之间的差是
01 02 03 04 05 08 位数之间的差是
我自己试修改很久都没有成功,望高手稍加完善一下,谢谢!
作者: terse 时间: 2012-10-8 10:35
- @echo off&setlocal enabledelayedexpansion
- (for /f "tokens=1*" %%i in (a.txt) do (
- set /a n=1%%i&set "m="
- for %%a in (%%j) do (
- set /a n-=1%%a
- set m=!m! !n!
- set /a n=1%%a
- )
- set m=!m:-=!
- echo!m!
- ))>b.txt
- pause
复制代码
作者: forfiles 时间: 2012-10-8 12:39
回复 3# qzwifi
把他的代码里面%%i %%j 位数之间的差是删掉
作者: qzwifi 时间: 2012-10-8 13:13
回复 4# terse
已OK,谢谢terse 及各位大哥!
作者: wc726842270 时间: 2012-10-8 13:49
无聊我也来一个- @echo off 2>nul 3>nul
- set a=0
- for /f "delims=" %%i in (目标文本.txt) do (
- setlocal enabledelayedexpansion
- for %%j in (%%i) do (
- set f=!e!
- set e=%%j
- set /a oe=!e:~1!-!f:~1!
- set line=!line! !oe!
- )
- echo !line!
- endlocal
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |