标题: [文本处理] [已解决]批处理怎样从文件循环读取字段,替换另一文件中指定字段? [打印本页]
作者: BatAli 时间: 2014-9-28 10:41 标题: [已解决]批处理怎样从文件循环读取字段,替换另一文件中指定字段?
本帖最后由 BatAli 于 2014-9-28 17:49 编辑
现在有这么一个需求:有两个文件
文件A的内容类似于Key=vaule形式如:
aaa=111
bbb=222
ccc=333
......
文件B的内容类似于下面:
asdfasdgasdfa
version=1.0
versionCode=22
num=000
现在想通过循环读取A文件中vaule(111,222,333等)来替换B文件中num的值(000)。
执行完的结果是这样的:
A文件内容不变
B文件替换之后会变成
asdfasdgasdfa
version=1.0
versionCode=22
num=111(A文件中aaa的值)
然后执行一些操作,现在先简单输出一个字符串标记一下。(遍历一次执行一次,执行内容相同)
接着循环A文件执行后B文件会变成
asdfasdgasdfa
version=1.0
versionCode=22
num=222(A文件中bbb的值)
然后执行一些操作,现在先简单输出一个字符串标记一下。(遍历一次执行一次,执行内容相同)
以此类推,直到A文件遍历完。
小弟新手,请各位大侠多多指教,在此先谢过了!
作者: DAIC 时间: 2014-9-28 11:04
按照顶楼的数据,替换之后希望得到什么样的结果?
作者: 牛虻 时间: 2014-9-28 11:15
本帖最后由 牛虻 于 2014-9-28 11:17 编辑
回复 2# DAIC
我看错了,我这个是修改一个文件中的内容。
不能做两个文件间的字符替换
不过我现在认真一看,没看懂LZ具体怎么替换
作者: BatAli 时间: 2014-9-28 11:20
回复 2# DAIC
A文件内容不变
B文件替换之后会变成
asdfasdgasdfa
version=1.0
versionCode=22
num=111(A文件中aaa的值)
然后执行一些操作,现在先简单输出一个字符串标记一下。(遍历一次执行一次,执行内容相同)
接着循环A文件执行后B文件会变成
asdfasdgasdfa
version=1.0
versionCode=22
num=222(A文件中bbb的值)
然后执行一些操作,现在先简单输出一个字符串标记一下。(遍历一次执行一次,执行内容相同)
以此类推,知道A文件遍历完。
作者: BatAli 时间: 2014-9-28 11:23
回复 3# 牛虻
谢谢牛虻,我是想循环A文件中的值,然后替换B文件中num的值
替换一次完成,执行一些固定的操作(可以先输出一个字符串标记一下),然后再循环A文件的值,来替换B文件中num的值
如此循环,知道A文件循环完。
是我表达的不太清楚,抱歉 呵呵
作者: Linuxer 时间: 2014-9-28 13:12
你试下是不是跟你的需求一样。- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2 delims==" %%i in (a.txt) do (
- (for /f "tokens=1,2 delims==" %%j in (b.txt) do (
- if "%%j"=="num" (set %%k=%%i & echo %%j=!%%k!) else echo %%j=%%k
- ))>b_%%i.txt
- del b.txt
- ren b_%%i.txt b.txt
- Rem 你的代码区域开始
- echo ---Your Code---
- Rem 你的代码区域结束
- pause>nul
- )
复制代码
作者: BatAli 时间: 2014-9-28 13:54
回复 6# Linuxer
谢谢大师,小弟泪流满面
作者: Linuxer 时间: 2014-9-28 16:35
回复 7# BatAli
可以用吗?
问题解决后,请在标题前面注明[已解决],并给回答者加分~~
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |