标题: [文本处理] 批处理如何把文本文件的数值翻倍? [打印本页]
作者: necnec1 时间: 2013-7-6 13:51 标题: 批处理如何把文本文件的数值翻倍?
1109080000100
1109080000200
1109080000500
1210310000100
1210310080000
1210319999900
上面6个例子 解释为
11年9月8日 后面的7位数 是按100 100的往上翻 极限值是9999900
12年10月31日 后面的7位数 是按100 100的往上翻
我想弄一个从08年的1月1日开始 一直到13年7月31日 不考虑是否有28天 31天之类的 统统按31天算
还有年月最好可以自己控制 因为不只到13年7月 以后还要弄 8月 9月 10月的也都还要的
极限值是9999900 只要弄到60万就行了 比如1210310600000
有点乱 呵呵 反正最后的结果就是
比如
0801010000100 按100的数值往上翻 一直到 0801010600000
1210310000100 按100的数值往上翻 一直到 1210310600100
请会的朋友帮忙 谢谢~
作者: xxpinqz 时间: 2013-7-6 15:24
60W,用批估计直接挂了吧,不甚了解。
写了那么多,重点的生成规律却说的不明不白的.
1109080000100
1109080000200
1109080000500(如果按+100算该是0000300,翻倍该是0000400)?
每天生成几个?
作者: lateol 时间: 2013-7-7 11:22
顺便写了一下,,,,,电脑死掉了.....- -!
作者: terse 时间: 2013-7-7 12:10
本帖最后由 terse 于 2013-7-7 21:07 编辑
回复 3# lateol
怎么回事 我这样写 只是时间的煎熬- @echo off&setlocal enabledelayedexpansion
- (for /l %%i in (2008 1 2013) do (
- set y=%%i
- for /l %%j in (101 1 112) do (
- set m=%%j
- for /l %%k in (101 1 131) do (
- set d=%%k
- for /l %%l in (100 100 600000) do (
- set s=000000%%l
- echo !y:~-2!!m:~-2!!d:~-2!!s:~-7!
- )
- )
- )
- ))>test.txt
- pause
复制代码
作者: PowerShell 时间: 2013-7-7 12:28
本帖最后由 PowerShell 于 2013-7-7 12:30 编辑
powershell代码- [reflection.assembly]::loadwithpartialname("System.Text") | Out-Null
- $内存占用量 = 800000
- $大字符串 = New-Object System.Text.StringBuilder($内存占用量)
-
- $第一部分 = '110908'
- [int64]$第二部分 = 1
- $第三部分 = "00"
-
- for ($第二部分 = 1; $第二部分 -lt 1000000;$第二部分++)
- {
- $大字符串.AppendLine($第一部分 + [string]$("{0:D5}" -f $第二部分) + $第三部分) | Out-Null
-
-
- }
- Add-Content "f:\temp2\aaa.txt" -value $大字符串
复制代码
根据电脑速度快慢,程序运行1--2分钟,生成数据文件约15MB
代码简单不?容易看懂么?
作者: necnec1 时间: 2013-7-7 20:46
回复 4# terse
回楼主 速度还行 就是文本貌似不保存啊
作者: necnec1 时间: 2013-7-7 20:51
回复 5# PowerShell
回5楼版主 POWERSHELL代码 不会玩 不知道怎么弄
作者: terse 时间: 2013-7-7 21:08
回复 6# necnec1
修改 保存到TEST.TXT
作者: PowerShell 时间: 2013-7-7 21:56
Add-Content "f:\temp2\aaa.txt" -value $大字符串
这句话看不懂么? 不会改么? 我测试过,才说了生成15mb数据的。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |