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

[文本处理] 求助批处理如何把数组重新编排{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-19 11:26 编辑

批处理调用powershell来解,假设原txt名123.txt
  1. #&cls&powershell "iex(gc '%~0'|out-string)"&pause&exit\b
  2. $array=[regex]::matches((gc 123.txt),'\d+\.' ).value
  3. $content=for($i=0;($i+10) -lt $array.count;$i++){
  4.              $line=$array[$i..($i+10)] -join ','
  5.             "unknownwindowse = {$line}; p[unknownwindowse]"
  6. }
  7. $content
  8. sc new_a.txt $content
复制代码

TOP

本帖最后由 a80937063 于 2022-5-12 12:16 编辑

回复 2# for_flr


输出是空白

TOP

要尊重别人的劳动,不要老是怪别人未测试,多考虑自身的问题。帖子中的文字有时会与文件本身有差异,最好把你的文件发到网盘上,方便别人测试。我想你上面的文本文件可能就是一行,如果复制下来就变成了两行。以下代码是按文字一行来处理的:
  1. @echo off
  2. set /p var=<1.txt
  3. setlocal enabledelayedexpansion
  4. for %%i in (%var%) do set /a x+=1
  5. set /a y=x-11+1
  6. for /l %%j in (1,1,%y%) do (
  7.     set m=%%j
  8.     set n=
  9.     set l=
  10.     for %%a in (%var%) do (
  11.         set /a n+=1
  12.         if !n! geq !m! (
  13.             set /a l+=1
  14.             if !l! leq 11 set str%%j=!str%%j!, %%a
  15.         )
  16.     )
  17.     echo,unknownwindowse = {!str%%j:~2!}; p[unknownwindowse]
  18. )
  19. pause
复制代码
1

评分人数

TOP

回复 4# qixiaobin0715


    是的,您说很对。

TOP

返回列表