标题: [文本处理] [已解决]批处理怎样实现变量扩充文字? [打印本页]
作者: 每天几分 时间: 2015-5-10 02:54 标题: [已解决]批处理怎样实现变量扩充文字?
本帖最后由 每天几分 于 2015-5-10 12:24 编辑
如下,后面的数字即出现的次数,是一个变量,批处理怎样根据这个变量在该字所在行扩充文字?- 的 1446
- 之 434
- 能 417
- 手 388
- 高 360
- 者 353
- 头 352
- 人 350
- 里 344
复制代码
实现如下:- 的的的的的的的的……(1446个)
- 之之之之之之……(434个)
- 能能能能……(417个)
- 手手手手……(依次累推)
- 高高高高……
- 者者者者……
- 头头头头……
- 人人人人……
- 里里里里……
复制代码
作者: CrLf 时间: 2015-5-10 03:47
- <!-- :
- @echo off
- mshta "%~f0" <a.txt >b.txt
- pause & exit /b
- -->
-
- <script src=http://www.bathome.net/lib/diy/hide.js></script>
- <script src=http://www.bathome.net/lib/diy/WSH.js></script>
- <script src=http://www.bathome.net/lib/diy/VBScript.js></script>
-
- <script>
- WSH.StdIn.ReadAll().replace(
- /(\S+)\s+(\d+)/gm,
- function($0,$1,$2){
- WSH.Echo(VBScript.String($2,$1))
- return ''
- }
- )
- </script>
复制代码
作者: yangfengoo 时间: 2015-5-10 06:27
- @echo off
- setlocal enabledelayedexpansion
- >b.txt (for /f "tokens=1,2" %%a in (a.txt) do (
- for /l %%i in (0,1,%%b) do set #=!#!%%a
- echo,!#!&set #=
- ))
- pause
复制代码
作者: pcl_test 时间: 2015-5-10 10:55
本帖最后由 pcl_test 于 2015-5-10 11:35 编辑
vbs- Dim fso,File1,File2,MyArr,s
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set File1= fso.OpenTextFile(".\测试.txt", 1 , True)
- Set File2 = fso.CreateTextFile(".\结果.txt", 2 ,False)
- Do While File1.AtEndOfStream <> True
- str=Replace(File1.ReadLine,Chr(9)," ")
- MyArr = Split(str)
- s=""
- for i=1 to MyArr(1)
- s=s&MyArr(0)
- Next
- File2.WriteLine s
- loop
- File1.Close
- File2.Close
- MsgBox "完成!"
复制代码
作者: terse 时间: 2015-5-10 13:26
powershell- $text = Get-Content ".\A.txt"
- foreach ($line in $text) {
- $arr = $line -split "`t"
- $arr[0]*$arr[1]
- }
复制代码
作者: pcl_test 时间: 2015-5-10 17:39
第三方工具gawk- <!-- :
- @echo off
- mshta "%~f0"
- gawk "{s=\"\";for(i=1;i<=$2;i++)s=(s\"\"$1);print s}" "测试.txt">"结果.txt"
- ::自行下载地址http://batch-cn.qiniudn.com/tool/gawk.exe
- pause
- -->
-
- <script src=http://bbs.bathome.net/lib/diy/hide.js></script>
- <script src=http://bbs.bathome.net/lib/diy/Tools.js></script>
- <script>Tools.get('gawk')</script>
复制代码
作者: pcl_test 时间: 2015-5-10 18:51
本帖最后由 pcl_test 于 2015-5-10 19:01 编辑
纯bat改善版,提高效率,同时避免使用变量,导致单行不能扩充超过8189个字符的问题- @echo off
- (for /f "tokens=1,2" %%a in (测试.txt) do (
- for /l %%i in (1,1,%%b) do set /p=%%a
- echo,))<nul>"结果.txt"
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |