Board logo

标题: [文本处理] 批处理如何将TXT中提取字符串每两个字符增加一个冒号并输出指定格式? [打印本页]

作者: wc365    时间: 2014-5-15 10:28     标题: 批处理如何将TXT中提取字符串每两个字符增加一个冒号并输出指定格式?

1.TXT文件中有如下类似1行或者多行固定16个字符长度的字符串
10000000C97E5FFA
20000000C97E34AB
C050760502C90042
C050760501BF0036

2.将以上字符串每两个字符插入一个冒号,如下:
10:00:00:00:C9:7E:5F:FA
20:00:00:00:C9:7E:34:AB
C0:50:76:05:02:C9:00:42
C0:50:76:05:01:BF:00:36

3.按照“字符串1,字符串2,字符串3,...字符串4”的格式输出,或生成新的字符串
“10:00:00:00:C9:7E:5F:FA,20:00:00:00:C9:7E:34:AB,C0:50:76:05:02:C9:00:42,C0:50:76:05:01:BF:00:36”

谢谢各位!
作者: 522235677    时间: 2014-5-15 11:07

2
  1. @echo off
  2. for /f %%a in (1.txt) do (
  3. set str=%%a
  4. for /l %%b in (0 2 14) do (
  5. call set /p=%%str:~%%b,2%%<nul
  6. if %%b neq 14 set /p=:<nul
  7. )
  8. echo.
  9. )
  10. pause
复制代码
3
  1. @echo off
  2. for /f %%a in (1.txt) do (
  3. set str=%%a
  4. for /l %%b in (0 2 14) do (
  5. call set /p=%%str:~%%b,2%%<nul
  6. if %%b neq 14 (set /p=:<nul) else (set /p=,<nul)
  7. )
  8. )
  9. pause
复制代码

作者: wc365    时间: 2014-5-15 16:04

本帖最后由 wc365 于 2014-5-15 16:17 编辑

谢谢,如果我想把输出赋予一个变量应该如何写呢
c=10:00:00:00:C9:7E:5F:FA,20:00:00:00:C9:7E:34:AB,C0:50:76:05:02:C9:00:42,C0:50:76:05:01:BF:00:36

回复 2# 522235677
作者: 522235677    时间: 2014-5-15 19:07

回复 3# wc365
  1. @echo off
  2. (for /f %%a in (1.txt) do (
  3.         set str=%%a
  4.         for /l %%b in (0 2 14) do (
  5.                 call set /p=%%str:~%%b,2%%<nul
  6.                 if %%b neq 14 (set /p=:<nul) else (set /p=,<nul)
  7.         )
  8. ))>~tmp
  9. for /f %%a in (~tmp) do set str=%%a
  10. del ~tmp
  11. echo %str:~0,-1%
  12. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2