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

[文本处理] 批处理如何将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”

谢谢各位!

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
复制代码

TOP

本帖最后由 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

TOP

回复 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
复制代码

TOP

返回列表