中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 23:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何替换字符 查看 900 回复 7
楼 主 如何替换字符 发表于 2009-11-09 16:27 ·  中国 广西 柳州 电信
初级用户
积分 57
发帖 30
注册 2007-11-20 17:06
18年会员
UID 103240
性别 男
状态 离线
有两个TXT文件,A.txt和B.txt
A中内容如下:
13013031013010
30110310310301
13013031013010
01301030103010
.........

B中内容如下:
45121656533232
23232212121212

我想用B中的每一列的前面5位数替换A中所有列的前面5位数,然后输入为:
B1文件:
45121031013010
45121310310301
45121031013010
45121030103010

B2文件:
23232031013010
23232310310301
23232031013010
23232030103010

这个该如何实现呢??
2 发表于 2009-11-09 16:37 ·  中国 广西 柳州 电信
初级用户
积分 57
发帖 30
注册 2007-11-20 17:06
18年会员
UID 103240
性别 男
状态 离线
哪位高手知道如何实现这个功能呢??
3 发表于 2009-11-09 17:54 ·  中国 广西 柳州 电信
初级用户
积分 57
发帖 30
注册 2007-11-20 17:06
18年会员
UID 103240
性别 男
状态 离线
救救俺哈!
4 发表于 2009-11-09 19:45 ·  中国 湖南 长沙 联通
新手上路
积分 16
发帖 15
注册 2009-10-02 20:17
16年会员
UID 152549
性别 男
状态 离线
多用for
5 发表于 2009-11-09 21:52 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (b.txt) do (
set bs=%%a
set /a n+=1
for /f "tokens=*" %%b in (a.txt) do (set as=%%b&echo !bs:~,5!!as:~5!>>b!n!.txt)
)
pause
精简
=> 个人网志
6 发表于 2009-11-10 10:59 ·  中国 广西 柳州 电信
初级用户
积分 57
发帖 30
注册 2007-11-20 17:06
18年会员
UID 103240
性别 男
状态 离线
谢谢楼上的仁兄哈,看来FOR还是得好好再研究!
7 发表于 2009-11-10 12:51 ·  中国 广西 柳州 电信
初级用户
积分 57
发帖 30
注册 2007-11-20 17:06
18年会员
UID 103240
性别 男
状态 离线
(set as=%%b&echo !bs:~,5!!as:~5!>>b!n!.txt)能解释一下这段么?!bs:~,5!!as:~5!这个是怎么理解的呢?
8 发表于 2009-11-10 15:08 ·  中国 上海 电信
新手上路
积分 8
发帖 8
注册 2009-09-05 10:59
16年会员
UID 151524
性别 男
状态 离线
是set 截取字符串---
看教程-----

?!bs:~,5!!as:~5!
是两个截取后的字符串放在一起作为一个字符串----
或者说 一个变量由两部分组成

[ Last edited by vsbat on 2009-11-10 at 15:10 ]
论坛跳转: