中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-28 12:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已结,感谢高手)两个字符串合并的问题 查看 943 回复 10
楼 主 (已结,感谢高手)两个字符串合并的问题 发表于 2008-10-29 22:22 ·  中国 吉林 长春 电信
初级用户
积分 50
发帖 40
注册 2008-01-14 05:56
18年会员
UID 108541
性别 男
状态 离线
感谢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 ]
2 发表于 2008-10-29 22:27 ·  中国 四川 绵阳 电信
初级用户
积分 75
发帖 46
注册 2007-09-25 22:21
18年会员
UID 98274
性别 男
状态 离线
这样行不我以前请教别人得到的
@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又放一个记事本,看下这个代码应该有帮助
3 发表于 2008-10-29 22:30 ·  中国 吉林 长春 电信
初级用户
积分 50
发帖 40
注册 2008-01-14 05:56
18年会员
UID 108541
性别 男
状态 离线
兄弟,我以前就抄的你的这段代码,现在想换一下啊。
4 发表于 2008-10-29 22:33 ·  中国 四川 绵阳 电信
初级用户
积分 75
发帖 46
注册 2007-09-25 22:21
18年会员
UID 98274
性别 男
状态 离线
只要能实现就行了啊!你把C.txt中一坚排全打个字符,在综合出来的D中,用替换全给清了不就行了!
努力学习!我行的!
5 发表于 2008-10-30 00:02 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
字符有多长? 字符空格间隔?还是文本里获取呢?
简单!简单!再简单!
6 发表于 2008-10-30 08:45 ·  中国 吉林 长春 联通
初级用户
积分 50
发帖 40
注册 2008-01-14 05:56
18年会员
UID 108541
性别 男
状态 离线
楼上的,只要能得到正确答案就行,但不要使用文件的方式。
7 发表于 2008-10-30 09:28 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@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
)
8 发表于 2008-10-30 09:50 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@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 ]
9 发表于 2008-10-30 13:24 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线

@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
简单!简单!再简单!
10 发表于 2008-10-30 13:31 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
@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...^_^
11 发表于 2008-10-30 13:48 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
空格数量不定
@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
)
论坛跳转: