标题: [文本处理] [已解决]bat如何调用txt文件内容到命令窗口 [打印本页]
作者: fcxk 时间: 2015-5-8 13:41 标题: [已解决]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:21
本帖最后由 pcl_test 于 2015-5-8 14:40 编辑
- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('type "1.txt"') do (
- set /p=%%a
- set /a n+=1
- if "!n!" equ "2" echo;&set n=0
- )<nul
- pause>nul
复制代码
作者: fcxk 时间: 2015-5-8 15:30
回复 2# pcl_test
谢谢,可以用,但好像不会对齐
显示的结果是:
1XXXXXXXX 2XXXXXXXXXx
3XXXXXXXXXX 4XXXXXXXXXXX
5XXXXXXX 6XXXXXXXXXxxx
可否列与列序号对齐
作者: pcl_test 时间: 2015-5-8 15:30
回复 3# fcxk
你的文档有问题,上传你的文档
作者: fcxk 时间: 2015-5-8 15:31
回复 3# fcxk
就是说:
1XXXXXXX
2XXXXX
3XXXXX
文字不同的情况下,会很乱
作者: pcl_test 时间: 2015-5-8 16:39
本帖最后由 pcl_test 于 2015-5-8 16:58 编辑
回复 3# fcxk - @echo off & setlocal enabledelayedexpansion
- set t=0
- for /f "delims=" %%a in ('type "1.txt"') do (
- set len=0
- for /f "tokens=*" %%i in ("%%a") do set "$=%%~nxi#"
- for %%b in (128 64 32 16)do if !$:~%%b!. neq . set /a len+=%%b&set $=!$:~%%b!
- set $=!$!fedcba9876543210&set /a len+=0x!$:~16,1!
- if !len! geq !t! set t=!len!
- )
- set /a t+=3
- for /l %%c in (1 1 128) do set "e=!e! "
- set n=0
- for /f "delims=" %%d in ('type "1.txt"') do (
- for /f "tokens=*" %%j in ("%%d") do set "str=%%~nxj"
- if "!n!" equ "0" set "str=!str!%e%" &set "str=!str:~,%t%!"
- set /p=!str!
- set /a n+=1
- if "!n!" equ "2" echo;&set n=0
- )<nul
- pause>nul
复制代码
作者: fcxk 时间: 2015-5-8 17:10
回复 6# pcl_test
太牛了,成功了,谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |