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

[文本处理] 批处理:怎么把竖排文本转换成横排文本?

本帖最后由 marya 于 2014-3-25 11:57 编辑

有个 1.txt 的文本,每行3段文本,例如:

校长室   192.168.18.3   LDYZa3
教导处   192.168.18.4   LDYZa4
总务处   192.168.18.5   LDYZa5

原有代码显示效果(后面2段不用显示):

1.校长室
2.教导处
3.总务处

原代码参考:
  1. set n=0
  2. for /f "tokens=1,2" %%a in (1.txt) do (
  3. set /a n+=1
  4. echo   !n!·%%a
  5. )
复制代码
现在想转化成横排,中间空格分割,并且每排3个数字,超过3个,自动换行到下行显示,效果如下:

1.校长室   2.教导处   3.总务处

这帖似差不多,但本人只略懂皮毛,请高手指点一下,先谢谢!
http://bbs.bathome.net/redirect.php?tid=18971&goto=lastpost

本帖最后由 apang 于 2014-3-25 10:42 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%a in (1.txt) do (
  3.     set /a n+=1,m=n%%3
  4.     set /p=!n!.%%a <nul
  5.     if "!m!"=="0" echo,
  6. )
  7. pause
复制代码

TOP

回复 2# apang

字间隔太密,能否分开一点?横竖分开点易看最好!谢谢!

TOP

本帖最后由 xxpinqz 于 2014-3-25 12:53 编辑
  1. set /p=!n!.%%a <nul
复制代码
<前面的空格就是字段间隔,要宽点就多加几个空格
  1. set /p=!n!.%%a         <nul
复制代码
  1. if "!m!"=="0" echo,
复制代码
echo,是行间隔,如果要空一行多加一个&echo,
  1. if "!m!"=="0" echo,&echo,
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 4# xxpinqz

左边距——红箭头处离边太近

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f %%a in (1.txt) do (
  3.     set /a n+=1,m=n%%3
  4.     set "s=!s!  !n!.%%a"
  5.     if "!m!"=="0" echo,!s!&echo,&set "s="
  6. )
  7. if defined s echo,!s!
  8. pause
复制代码

TOP

返回列表