中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-01 19:13
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何调换字符位置(反向)?
可打印版本  1,457 / 11
第1楼 lin8197 发表于 2010-01-24 10:53
初级用户 发帖 36 积分 186
如何调换字符位置(反向)?
有一变量内容如: A=123456789............... (变量的值及长度不定)

求: 1)把变量A倒转(反向),如 :A=...............987654321

2)把变量A 的奇偶位分别取出来,分别设为两个变量,如:A1=13579............ A2=2468..............

[ Last edited by lin8197 on 2010-1-24 at 11:07 ]
第2楼 cxchcq 发表于 2010-01-24 11:19
新手上路 发帖 12 积分 16
批刚学没学好。。暂用C思路抛砖,
兄弟,
我现在不知道批用什么功能。如果可以用数组的话。
1)就好解了。用两个FOR
1,把1--9。。。。放入数组A
在用FOR递减把......9--1放入数组B
输出B就可了
2)的问题通过上面就好解了在多用几个FOR后加IF判断
批真不知道怎么搞,,我想思路是一样的吧。。我现在刚学批,,所以思路说下。。批怎么搞去看下命令和代码有什么可以实现

请高人出来答下~~~

[ Last edited by cxchcq on 2010-1-24 at 12:03 ]
第3楼 lin8197 发表于 2010-01-24 11:36
初级用户 发帖 36 积分 186
如果用数组很容易实现,但我对批也不熟
第4楼 cxchcq 发表于 2010-01-24 11:58
新手上路 发帖 12 积分 16
看来是同仁了。。共同努力!!!
第5楼 ccwan 发表于 2010-01-24 12:36
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
关于问题1
第6楼 lin8197 发表于 2010-01-24 12:47
初级用户 发帖 36 积分 186
我用这个办法解决,不如楼上的简洁

@echo off
setlocal ENABLEDELAYEDEXPANSION
set n1=0
set n2=1
set a=123456789abcde
set a1=
set a2=
set b=
:test
set "temp1=!a:~%n1%,1!"
set "temp2=!a:~%n2%,1!"
if "%temp1%" == "" goto end
set /A n1="n1+2"
set /A n2="n2+2"
set a1=%a1%%temp1%
set a2=%a2%%temp2%
set b=%temp2%%temp1%%b%
goto test

:end
echo %a1%
echo %a2%
echo %b%
pause
第7楼 mountvol 发表于 2010-01-24 13:23
初级用户 发帖 117 积分 186

如果分开做几个sub的话效率会搞一些.
第8楼 HAT 发表于 2010-01-24 14:23
版主 发帖 5,017 积分 9,023
第9楼 lin8197 发表于 2010-01-24 16:58
初级用户 发帖 36 积分 186
如果想读一个文本,把每行内容反转,并保存一个另一个文本.如何做?
第10楼 HAT 发表于 2010-01-24 18:35
版主 发帖 5,017 积分 9,023
Re 9楼
你会反转一行之后,用for读取每行,每行都反转不就行了?
第11楼 lin8197 发表于 2010-01-25 09:39
初级用户 发帖 36 积分 186
Originally posted by HAT at 2010-1-24 06:35 PM:
你会反转一行之后,用for读取每行,每行都反转不就行了?


我对批不熟悉,麻烦给出代码.谢谢
第12楼 lin8197 发表于 2010-01-25 10:39
初级用户 发帖 36 积分 186
已解决
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023