中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结,感谢高手)两个字符串合并的问题
作者:
标题: (已结,感谢高手)两个字符串合并的问题 上一主题 | 下一主题
victor888
初级用户





积分 50
发帖 40
注册 2008-1-14
状态 离线
『楼 主』:  (已结,感谢高手)两个字符串合并的问题

感谢2位高手的解答,但这里有一个问题,如果字符串不同字符之间的空格数不是固定,也就是说最少可能一个的话,如何连接呢?
谢谢!
==
字符串1:A B C D E
字符串2:1 2 3 4 5 6 7 8

现在想得到A1 B2 C3 D4 E5,请问如何操作。

[ Last edited by victor888 on 2008-10-30 at 15:53 ]

2008-10-29 22:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 2 楼』:  

这样行不我以前请教别人得到的
@echo off&setlocal enabledelayedexpansion
if exist d.txt del /q d.txt
for /f "tokens=*" %%a in (a.txt) do (
set /a n+=1
set _!n!=%%a
)
set n=0
for /f "tokens=*" %%b in (b.txt) do (
set /a n+=1
set _b!n!=%%b
)
set n=0
for /f "tokens=*" %%i in (c.txt) do call :lp %%i
goto :eof

:lp
set /a n+=1
echo !_%n%!  !_b%n%!   %1>>d.txt
你把字符串1放一个记事本,字符串2又放一个记事本,看下这个代码应该有帮助

2008-10-29 22:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
victor888
初级用户





积分 50
发帖 40
注册 2008-1-14
状态 离线
『第 3 楼』:  

兄弟,我以前就抄的你的这段代码,现在想换一下啊。

2008-10-29 22:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jycel
初级用户




积分 75
发帖 46
注册 2007-9-25
状态 离线
『第 4 楼』:  

只要能实现就行了啊!你把C.txt中一坚排全打个字符,在综合出来的D中,用替换全给清了不就行了!



努力学习!我行的!
2008-10-29 22:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 5 楼』:  

字符有多长? 字符空格间隔?还是文本里获取呢?



简单!简单!再简单!
2008-10-30 00:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
victor888
初级用户





积分 50
发帖 40
注册 2008-1-14
状态 离线
『第 6 楼』:  

楼上的,只要能得到正确答案就行,但不要使用文件的方式。

2008-10-30 08:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  


@echo off
setlocal enabledelayedexpansion
set str1=A B C D E
set str2=1 2 3 4 5 6 7 8
for /l %%a in (0,2,8) do (
  set /p =!str1:~%%a,1!!str2:~%%a,1! <nul
)




2008-10-30 09:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 8 楼』:  


@echo off & setlocal EnableDelayedExpansion
set str1=A B C D E
set str2=1 2 3 4 5 6 7 8
:loop
  set /p =!str1:~%n%,1!!str2:~%n%,1! <nul
  set /a n+=2
  if "!str1:~%n%,1!" neq "" goto loop
echo. & pause
[ Last edited by tireless on 2008-10-30 at 10:05 ]

2008-10-30 09:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 9 楼』:  


@echo off&setlocal enabledelayedexpansion&color
set str1=A B C D E
set str2=1 2 3 4 5 6 7 8
for %%i in (%str1%) do (
call set "str=!str!%%i%%str2:~!n!,1%% "
set/a n+=2
)
echo !str!
pause




简单!简单!再简单!
2008-10-30 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 10 楼』:  


@echo off
set "var=A B C D E"
set "str=1 2 3 4 5 6 7 8"
for %%a in (%var%) do set /a n+=1& call :loop %%a
echo. &pause &exit /b
:loop
for /f "tokens=%n%" %%a in ("%str%") do set /p=%1%%a <nul




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-10-30 13:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  

空格数量不定
@echo off
setlocal enabledelayedexpansion
set str1=A B  C   D    E
set str2=1 2  3   4    5   6  7 8
for %%a in (%str1%) do (
  set str11=!str11! %%a
)
for %%a in (%str2%) do (
  set str22=!str22! %%a
)
for /l %%a in (1,2,9) do (
  set /p =!str11:~%%a,1!!str22:~%%a,1! <nul
)




2008-10-30 13:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: