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

[文本处理] 想把一行文本变成三行,批处理如何实现?

  1. wuyc_1226----891226
  2. wuyue575----5464575
  3. wuyue7456----5uyuy3535
  4. wy88512----7192798
  5. wyb0451----WYBSWILY
  6. wyfighters----henxinyaof
复制代码
想把上面的给是变成 下面这种格式,左边是user,右边是password,
secret: "" 默认就是这样。
  1.     -   user: "wuyc_1226"
  2.         password: "891226"
  3.         secret: ""
复制代码
结果就是变成了



-   user: "wuyc_1226" # 用户名
        password: "891226" # 密码
        secret: ""


-   user: "wuyue575" # 用户名
        password: "5464575" # 密码
        secret: ""



以上这种结果

  1. @echo off
  2. (for /f "tokens=1* delims=-" %%a in ('find /v "" ^<"1.txt"') do (
  3. echo     -   user: "%%a"
  4. echo         password: "%%b"
  5. echo         secret: ""
  6. ))>2.txt
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 qixiaobin0715 于 2023-6-28 14:01 编辑

如果文本中user和password都是有4个 “-” 隔开:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('findstr "\----" 1.txt') do (
  4.     set "str=%%i"
  5.     set "str=!str:----=`!"
  6.     for /f "tokens=1* delims=`" %%j in ("!str!") do (
  7.         echo,    -   user: "%%j"
  8.         echo,        password: "%%k"
  9.         echo,        secret: ""
  10.         echo,
  11.     )
  12. ))>2.txt
复制代码

TOP

回复 1# Rasm
如果不介意第3方工具gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe ),以下指令可实现楼主的需求:
  1. gawk -F"-+" "{print\"    -   user: \042\"$1\"\042\n        password: \042\"$2\"\n        secret: \042\042\n\"}" 1.txt>2.txt
复制代码

TOP

返回列表