标题: [文本处理] 求助批处理如何把数组重新编排{11组}? [打印本页]
作者: a80937063 时间: 2022-5-11 15:52 标题: 求助批处理如何把数组重新编排{11组}?
原.txt
347859., 342496., 337784., 339551., 339551., 344110., 346629., 348293., 347443., 343748., 345596.,
346694., 346694., 347940.,
重新编排效果.txt
unknownwindowse = {347859., 342496., 337784., 339551., 339551., 344110., 346629., 348293., 347443., 343748., 345596.}; p[unknownwindowse]
unknownwindowse = {342496., 337784., 339551., 339551., 344110., 346629., 348293., 347443., 343748., 345596., 346694.}; p[unknownwindowse]
unknownwindowse = {337784., 339551., 339551., 344110., 346629., 348293., 347443., 343748., 345596., 346694., 346694.}; p[unknownwindowse]
unknownwindowse = {339551., 339551., 344110., 346629., 348293., 347443., 343748., 345596., 346694., 346694., 347940.}; p[unknownwindowse]
以上是14个数字。每11个为一组,一次添加【】中
谢谢了
作者: for_flr 时间: 2022-5-11 19:54
本帖最后由 for_flr 于 2022-5-19 11:26 编辑
批处理调用powershell来解,假设原txt名123.txt- #&cls&powershell "iex(gc '%~0'|out-string)"&pause&exit\b
- $array=[regex]::matches((gc 123.txt),'\d+\.' ).value
- $content=for($i=0;($i+10) -lt $array.count;$i++){
- $line=$array[$i..($i+10)] -join ','
- "unknownwindowse = {$line}; p[unknownwindowse]"
- }
- $content
- sc new_a.txt $content
复制代码
作者: a80937063 时间: 2022-5-12 06:37
本帖最后由 a80937063 于 2022-5-12 12:16 编辑
回复 2# for_flr
输出是空白
作者: qixiaobin0715 时间: 2022-5-12 09:22
要尊重别人的劳动,不要老是怪别人未测试,多考虑自身的问题。帖子中的文字有时会与文件本身有差异,最好把你的文件发到网盘上,方便别人测试。我想你上面的文本文件可能就是一行,如果复制下来就变成了两行。以下代码是按文字一行来处理的:- @echo off
- set /p var=<1.txt
- setlocal enabledelayedexpansion
- for %%i in (%var%) do set /a x+=1
- set /a y=x-11+1
- for /l %%j in (1,1,%y%) do (
- set m=%%j
- set n=
- set l=
- for %%a in (%var%) do (
- set /a n+=1
- if !n! geq !m! (
- set /a l+=1
- if !l! leq 11 set str%%j=!str%%j!, %%a
- )
- )
- echo,unknownwindowse = {!str%%j:~2!}; p[unknownwindowse]
- )
- pause
复制代码
作者: a80937063 时间: 2022-5-12 12:20
回复 4# qixiaobin0715
是的,您说很对。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |