中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 20:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 替换变量 查看 739 回复 14
楼 主 替换变量 发表于 2008-03-27 16:22 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
1.txt内容为women an work
2.txt内容为
123
456
789a
现在想通过替换变为
women 123 work
women 456 work
women 789a work
应该怎么做,谢谢

[ Last edited by flyingphf on 2008-3-27 at 04:51 PM ]
2 发表于 2008-03-27 16:44 ·  中国 北京 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
19年会员
UID 82683
性别 女
状态 离线

@echo off&setlocal
for /f %%? in (2.txt) do call:ansi %%?
goto:eof
:ansi
for /f "tokens=1*" %%p in (1.txt) do echo %%p %1 %%q
3 发表于 2008-03-27 16:48 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
??好像不对把
4 发表于 2008-03-27 17:27 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
有谁知道的吗,急啊
5 这样就可以实现了: 发表于 2008-03-27 18:04 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
@echo off&setlocal EnableDelayedExpansion
set /p a=<1.txt
for /f "tokens=*" %%i in (2.txt) do (
set b= !a:an=%%i!
echo !b! >>3.txt
)
type 3.txt
批处理之家新域名:www.bathome.net
6 发表于 2008-03-27 18:18 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
不对啊,晕了
7 发表于 2008-03-27 18:19 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
set /p a=<1.txt
呵呵 zw兄学的好快 :)
8 发表于 2008-03-27 18:20 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
测试可以啊
9 发表于 2008-03-27 18:20 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线

@echo off
for /f "tokens=1-3" %%a in (1.txt) do (
for /f "delims=" %%i in (2.txt) do echo %%a %%i %%c
)
pause
致精致简!
10 发表于 2008-03-27 18:22 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
那我怎么不行啊,结果应该是
women 123 work
women 456 work
women 789a work
11 发表于 2008-03-27 18:23 ·  中国 上海 奉贤区 电信
中级用户
★★
积分 392
发帖 142
注册 2007-06-10 09:48
19年会员
UID 90856
性别 男
状态 离线
可以了,谢谢
12 发表于 2008-03-27 18:31 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by flyingphf at 2008-3-27 18:18:
不对啊,晕了

我都测试了才发的代码,不知道你怎么就不行了?
批处理之家新域名:www.bathome.net
13 发表于 2008-03-27 18:31 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
@echo off
for /f "tokens=*" %%a in (2.txt) do (
for /f "tokens=1,2*" %%i in (1.txt) do (
echo %%i %%a %%k
)
)
pause
简单!简单!再简单!
14 发表于 2008-03-27 18:33 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
我觉得5楼的没问题

@echo off &&setlocal enabledelayedexpansion
set/p a=<a.txt
for /f "delims=" %%i in (b.txt) do (
echo !a:an=%%i!)
pause
15 发表于 2008-03-27 19:20 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
5楼的通用性也好
论坛跳转: