首页 > 编程 > BAT > 正文

批处理实现文本内容横列变纵列的代码

2020-07-26 20:23:19
字体:
来源:转载
供稿:网友
因为论坛会吞掉文本每行的第一个空格,现截图上来。


每行的字符数都一样,但未知多少个字符。
注意,文本第三行r之后有一个空格。第四行x之后有一个空格。
输出为:


即横列变纵列,并保留原来空格。
要求,高效,不生成临时文件。

batman:
复制代码 代码如下:

@echo off
for /f "delims=" %%. in (1.txt) do set "_=0"&set "..=%%."&call :{}
for /l %%+ in (1,1,%_%) do call,echo.%%..%%+%%
pause>nul&goto :eof
:{}
set "#=%..:~,1%"&call,set "..=%%..:~1%%"&set /a _+=1&call,set "..%_%=%%..%_%%%%#%"&if defined .. goto {}

说明下:
之所以写下这么一段怪异的代码,就是想告诉大家,只要你运用得得当,批处理真的是可以随心所欲地写,这也就
是其中乐趣所在了。。。
 
 
浅默:
复制代码 代码如下:

@echo off&setlocal enabledelayedexpansion
for /l %%a in (0,1,10) do (
for /f "delims=" %%i in (a.txt) do (
set ke=%%i
set /p=!ke:~%%a,1!<nul
)
echo.
)
pause

 
 
Keen:
复制代码 代码如下:

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set v=%%i
set n=0
call :lp
)
for /l %%i in (1 1 %n%) do (
set num=%%i
call,echo %%_!num!%%
)
pause&exit/b
:lp
set /a n+=1
set _%n%=!_%n%!%v:~0,1%
set v=%v:~1%
if not "%v%"=="" goto lp
goto :eof
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表