找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32117|回复: 7

[文本处理] [已解决]批处理怎样从文件循环读取字段,替换另一文件中指定字段?

[复制链接]
发表于 2014-9-28 10:41:58 | 显示全部楼层 |阅读模式
本帖最后由 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文件遍历完。

小弟新手,请各位大侠多多指教,在此先谢过了!
发表于 2014-9-28 11:04:42 | 显示全部楼层
按照顶楼的数据,替换之后希望得到什么样的结果?
发表于 2014-9-28 11:15:16 | 显示全部楼层
本帖最后由 牛虻 于 2014-9-28 11:17 编辑

回复 2# DAIC


    我看错了,我这个是修改一个文件中的内容。
不能做两个文件间的字符替换
不过我现在认真一看,没看懂LZ具体怎么替换
 楼主| 发表于 2014-9-28 11:20:24 | 显示全部楼层
回复 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文件遍历完。
 楼主| 发表于 2014-9-28 11:23:57 | 显示全部楼层
回复 3# 牛虻


    谢谢牛虻,我是想循环A文件中的值,然后替换B文件中num的值
替换一次完成,执行一些固定的操作(可以先输出一个字符串标记一下),然后再循环A文件的值,来替换B文件中num的值
如此循环,知道A文件循环完。

是我表达的不太清楚,抱歉  呵呵
发表于 2014-9-28 13:12:15 | 显示全部楼层
你试下是不是跟你的需求一样。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims==" %%i in (a.txt) do (
  4.         (for /f "tokens=1,2 delims==" %%j in (b.txt) do (
  5.                 if "%%j"=="num" (set %%k=%%i & echo %%j=!%%k!) else echo %%j=%%k
  6.         ))>b_%%i.txt
  7.         del b.txt
  8.         ren b_%%i.txt b.txt
  9.         Rem 你的代码区域开始       
  10.         echo ---Your Code---
  11.         Rem 你的代码区域结束
  12.         pause>nul
  13. )
复制代码

评分

参与人数 1技术 +1 收起 理由
BatAli + 1 感谢,不知道加分是不是这样操作的

查看全部评分

 楼主| 发表于 2014-9-28 13:54:32 | 显示全部楼层
回复 6# Linuxer


    谢谢大师,小弟泪流满面
发表于 2014-9-28 16:35:17 | 显示全部楼层
回复 7# BatAli


    可以用吗?
问题解决后,请在标题前面注明[已解决],并给回答者加分~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:29 , Processed in 0.032027 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表