中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 07:12
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 把文本内容横列变纵列。
可打印版本  1,802 / 17
第1楼 pusofalse 发表于 2008-04-23 20:34
银牌会员 发帖 646 积分 1,604
把文本内容横列变纵列。
根据26933062前辈的问题想出来的~
a.txt:
aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz
输出为:
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

[ Last edited by pusofalse on 2008-4-23 at 08:36 PM ]
第2楼 dreamseed 发表于 2008-04-23 21:05
初级用户 发帖 10 积分 38 来自 GZ
除非像所述的格式那么工整,否则没法逆转,将会出现多解。
第3楼 26933062 发表于 2008-04-23 21:09
银牌会员 发帖 879 积分 2,268
:

[ Last edited by 26933062 on 2008-4-23 at 09:10 PM ]
第4楼 pusofalse 发表于 2008-04-23 21:16
银牌会员 发帖 646 积分 1,604
Originally posted by 26933062 at 2008-4-23 09:09 PM:
:
第5楼 bat-zw 发表于 2008-04-23 21:34
金牌会员 发帖 1,276 积分 3,105
第6楼 26933062 发表于 2008-04-23 21:48
银牌会员 发帖 879 积分 2,268
这回对了吧
第7楼 bat-zw 发表于 2008-04-23 21:51
金牌会员 发帖 1,276 积分 3,105
Originally posted by 26933062 at 2008-4-23 21:48:
这回对了吧
第8楼 bat-zw 发表于 2008-04-23 22:02
金牌会员 发帖 1,276 积分 3,105
Originally posted by dreamseed at 2008-4-23 21:05:
除非像所述的格式那么工整,否则没法逆转,将会出现多解。

a.txt

运行我的代码,结果如下(自己试):
vfwdmwcwnifcpxeaghocfqqiuvzfilcpqiuripuglajjtrvrpuu
yhiqhahalobgmfeyngxxcnbcrwsypwrualfyxbfxlhkjnnfvgv
dqrqafcptnamlzdfaqbojrzctpvpnftcnbuiuoswvftdmrixgj
uvkjdhvkyawnlcdmwnnfnuufsskzrzyzslgttpuegkdsjwames
请按任意键继续. . .
附a.txt内容生成代码:


[ Last edited by zw19750516 on 2008-4-23 at 10:05 PM ]
第9楼 pusofalse 发表于 2008-04-23 22:06
银牌会员 发帖 646 积分 1,604
这是我的代码~可惜要生成临时文件~T.T
@echo off&setlocal enabledelayedexpansion
echo %time%
set n=-4
:1
set /a n+=4
for /f %%a in (a.txt) do (
set str=%%a
set var=!str:~%n%,1!
set/p=!var!<nul>>temp.tmp
if !var! equ z goto :2
)
goto :1

:2
for /l %%a in (1 1 4) do for /f %%i in (temp.tmp) do echo %%i
echo %time%
pause

模仿zw19750516的另外一贴子,用时0.04-0.06秒之间,完全是在标签2内投机取巧啊~T.T
可以问下两位前辈 学习批处理已经多长时间了吗~?
第10楼 bat-zw 发表于 2008-04-23 22:08
金牌会员 发帖 1,276 积分 3,105
Originally posted by pusofalse at 2008-4-23 22:06:
@echo off&setlocal enabledelayedexpansion
echo %time%
set n=-4
:1
set /a n+=4
for /f %%a in (a.txt) do (
set str=%%a
set var=!str:~%n%,1!
set/p=!var!<nul>>temp.tmp
if !va ...

看我注册时间
ps: goto 后面不要加:

[ Last edited by zw19750516 on 2008-4-23 at 10:10 PM ]
第11楼 dreamseed 发表于 2008-04-23 22:13
初级用户 发帖 10 积分 38 来自 GZ
多解。不可行。
例如 abcd

可“还原”为



还有许多许多...
第12楼 bat-zw 发表于 2008-04-23 22:16
金牌会员 发帖 1,276 积分 3,105
Originally posted by dreamseed at 2008-4-23 22:13:
多解。不可行。
例如 abcd

可“还原”为



还有许多许多...

你先还是测试一下再说多解的事吧,我们是分4组然后递进4位截取的字符,真不知道怎么会出现多解!!!
第13楼 26933062 发表于 2008-04-23 22:23
银牌会员 发帖 879 积分 2,268
再来一个
:
第14楼 pusofalse 发表于 2008-04-23 22:31
银牌会员 发帖 646 积分 1,604
@echo off&setlocal enabledelayedexpansion
@echo %time%
set n=-4
:1
set /a n+=4
for /f %%a in (a.txt) do (
set str=%%a
set var=!var!!str:~%n%,1!
if !var:~-1! equ z for /l %%i in (1 1 4) do @echo !var!
)
if %var:~-1% neq z goto 1
echo %time%
echo.终于没临时文件了啊。。。T.T&pause
第15楼 26933062 发表于 2008-04-23 22:35
银牌会员 发帖 879 积分 2,268
仔细看了下5楼的代码,201个字符循环了51次,那么是否可以这样呢?
:
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023