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

[文本处理] [已解决]bat如何调用txt文件内容到命令窗口

文件名为:1.txt
内容:

1.XXXXXXXXXXXX
2.XXXXXXXXXXXX
3.XXXXXXXXXXXXX
4.XXXXXXXXXXXX
5.XXXXXXXXXXXX

打开BAT的时候调用1.txt内容到命令窗口里、并且1-2为一行、3-4为一行、就是两行合并成一行。合并行中间用空格分开距离。
如:
1XXXX     2XXX

3XXXX     4XXXX

5XXX

本帖最后由 pcl_test 于 2015-5-8 14:40 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type "1.txt"') do (
  3. set /p=%%a
  4. set /a n+=1
  5. if "!n!" equ "2" echo;&set n=0
  6. )<nul
  7. pause>nul
复制代码

TOP

回复 2# pcl_test


    谢谢,可以用,但好像不会对齐

显示的结果是:

1XXXXXXXX     2XXXXXXXXXx
3XXXXXXXXXX              4XXXXXXXXXXX
5XXXXXXX 6XXXXXXXXXxxx

可否列与列序号对齐

TOP

回复 3# fcxk
你的文档有问题,上传你的文档

TOP

回复 3# fcxk


    就是说:

1XXXXXXX
2XXXXX
3XXXXX

文字不同的情况下,会很乱

TOP

本帖最后由 pcl_test 于 2015-5-8 16:58 编辑

回复 3# fcxk
  1. @echo off & setlocal enabledelayedexpansion
  2. set t=0
  3. for /f "delims=" %%a in ('type "1.txt"') do (
  4. set len=0
  5. for /f "tokens=*" %%i in ("%%a") do set "$=%%~nxi#"
  6. for %%b in (128 64 32 16)do if !$:~%%b!. neq . set /a len+=%%b&set $=!$:~%%b!
  7. set $=!$!fedcba9876543210&set /a len+=0x!$:~16,1!
  8. if !len! geq !t! set t=!len!
  9. )
  10. set /a t+=3
  11. for /l %%c in (1 1 128) do set "e=!e! "
  12. set n=0
  13. for /f "delims=" %%d in ('type "1.txt"') do (
  14. for /f "tokens=*" %%j in ("%%d") do set "str=%%~nxj"
  15. if "!n!" equ "0" set "str=!str!%e%" &set "str=!str:~,%t%!"
  16. set /p=!str!
  17. set /a n+=1
  18. if "!n!" equ "2" echo;&set n=0
  19. )<nul
  20. pause>nul
复制代码

TOP

回复 6# pcl_test


    太牛了,成功了,谢谢

TOP

返回列表