标题: [代码合集] [已解决]批处理怎样在一个文本上每2个字符加个逗号? [打印本页]
作者: shchaoge 时间: 2012-10-10 21:44 标题: [已解决]批处理怎样在一个文本上每2个字符加个逗号?
如题:我有个文本内容为:FFFFFFFFFFFFFFFFFF0000000000 批处理运行后为:FF,FF,FF,FF,FF,FF,FF,FF,FF,00,00,00,00,00
每2个字符加个逗号
高手帮我写下代码
作者: 乱码 时间: 2012-10-10 22:25
- var file = "text.txt";
- var fso = new ActiveXObject("scripting.filesystemobject");
- var str = fso.OpenTextFile(file,1).ReadAll().replace(/(..)(?!$)/gm,'$1,');
- fso.OpenTextFile(file,2).Write(str);
- WSH.echo("OK");
复制代码
保存为 "处理.js" 双击运行即可、
如果js无法运行,保存为 "处理.jse" 即可、
作者: QIAOXINGXING 时间: 2012-10-10 22:34
- @echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"
-
- set "str=FFFFFFFFFFFFFFFFFF0000000000"
- for /l %%a in (0 2 100) do (
- if not "!str:~%%a,2!" == "" (
- set /p nstr=!str:~%%a,2!,<nul
- ) else (
- echo;&pause&exit
- )
- )
复制代码
作者: apang 时间: 2012-10-11 10:21
本帖最后由 apang 于 2012-10-12 09:41 编辑
源文件a.txt,输出文件b.txt- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- set "str=%%a"
- setlocal enabledelayedexpansion
- call :11
- echo,!a:~1!&endlocal
- ))>b.txt
- goto :eof
-
- :11
- if not "!str:~%n%!"=="" set "a=!a!,!str:~%n%,2!"&set/a n+=2&goto :11
复制代码
vbs,学习2楼乱码大侠的:- Set FSO = CreateObject("Scripting.FileSystemObject")
- Set File = FSO.OpenTextFile("a.txt",1)
- Set Re = New RegExp
- Re.Pattern = "(..)(?!$)"
- Re.Global=True
- Re.MultiLine = True
- Str = Re.Replace(File.ReadAll,"$1,")
- FSO.CreateTextFile("b.txt",True).Write(Str)
复制代码
Sorry,bat代码有错误,已修正
作者: Batcher 时间: 2012-10-11 19:12
- sed "s/../&,/g" a.txt | sed "s/,$//" >b.txt
复制代码
作者: poter 时间: 2012-10-11 19:31
尝试一下非传统的方法- @ECHO OFF
- Setlocal enableDelayedExpansion
- for /f "tokens=*" %%i in ("FFFFFFFFFFFFFFFFFF0000000000") do (
- set str=%%i&set str=!str:F=F !&set str=!str:0=0 !
- for %%j in (!str!) do (
- set /a a+=1&set /a b=!a!%%2
- if !b!==1 set str2=!str2!%%j
- if !b!==0 set str2=!str2!%%j,
- )
- echo !str2!
- )
复制代码
作者: shchaoge 时间: 2012-10-11 22:44
var file = "text.txt";
var fso = new ActiveXObject("scripting.filesystemobject");
var str = fso.OpenTextFile(file,1).ReadAll().replace(/(..)(?!$)/gm,'$1,');
fso.OpenTextFile(file,2).Write(str);
WSH.echo("OK");
复制代码保存为 "处理.js" 双击运行即可、
如果js无法运行,保存为 "处理.jse" 即可、
@echo off
(for /f "delims=" %%a in (a.txt) do (
set "str=%%a"
setlocal enabledelayedexpansion
call :11
echo,!a:~1!&endlocal
))>b.txt
goto :eof
:11
set /a n+=2
if not "!str:~%n%!"=="" set "a=!a!,!str:~%n%,2!"&goto :11
谢谢大家 用这2个办法 就可以达到我的要求
作者: shchaoge 时间: 2012-10-11 23:03
谢谢大家帮我解决了问题 但有个新问题出来 又开请教大家啦!批处理怎样在一个文本16进制字符转换成10进制字符 弄个批处理2个问题能一起解决那就最好
如题:我有个文本内容为:515253545556575859606162 批处理运行后为:333435363738393A3B3C3D3E
高手帮我写下代码,谢谢啦
作者: poter 时间: 2012-10-11 23:18
回复 8# shchaoge
还是用第三方吧,批处理的进制转换老麻烦了,需要每一位都单独处理、套公式
作者: shchaoge 时间: 2012-10-11 23:25
回复 shchaoge
还是用第三方吧,批处理的进制转换老麻烦了,需要每一位都单独处理、套公式
poter 发表于 2012-10-11 23:18
呵呵 谢谢 我是个菜鸟 您能帮我找个第三方软件 再用批处理运行来解决
作者: poter 时间: 2012-10-12 00:01
回复 10# shchaoge
抱歉 刚才我找了一下 没有找到,但愿其他会员能够帮助你,祝你好运!
作者: shchaoge 时间: 2012-10-12 00:03
回复 shchaoge
抱歉 刚才我找了一下 没有找到,但愿其他会员能够帮助你,祝你好运!
poter 发表于 2012-10-12 00:01
谢谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |