欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-19 18:34:13
因为论坛会吞掉文本每行的第一个空格,现截图上来。 每行的字符数都一样,但未知多少个字符。 注意,文本第三行r之后有一个空格。第四行x之后有一个空格。 输出为: 即横列变纵列...
因为论坛会吞掉文本每行的第一个空格,现截图上来。
批处理实现文本内容横列变纵列的代码

每行的字符数都一样,但未知多少个字符。
注意,文本第三行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