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

[文件操作] 批处理怎样遍历文件夹中的指定xml的文件并修改其中指定元素/标签/节点的内容?

[复制链接]
发表于 2017-2-13 13:48:53 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-4-29 07:56 编辑

我已经搜了好多帖子了,但还是没搞定,下面是需求:
修改一个目录(targetPath)下所有叫sourcemonitor.xml文件中的project_name节点,修改为任意字符,只要每个sourcemonitor.xml中的都不一样就行了:
<project_name>要修改为不一样的字符</project_name>
发表于 2017-2-14 15:46:24 | 显示全部楼层
PowerShell 可以这样:
  1. dir sourcemonitor.xml -Recurse | %{
  2.     $xml = [xml](type $_)
  3.     $xml.GetElementsByTagName('project_name') | %{ $_.InnerXml = 'Str' + (++$global:i) }
  4.     $xml.Save($_)
  5. }
复制代码

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2017-2-14 20:43:40 | 显示全部楼层
本帖最后由 taofan712 于 2017-2-14 21:32 编辑

作业练习:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a aa=%random%%%100
  4. for /f "delims=" %%a in ('dir /a-d /s /b targetpath\sourcemonitor.xml') do (
  5.         set /a aa+=1
  6.         for /f "tokens=2 delims=><" %%b in ('find /i "</project_name>" "%%a"') do ( set target=%%b
  7.         )
  8.         for /f "skip=2 tokens=1,* delims=[]" %%c in ('find /i /n "</project_name>" "%%a"') do ( set line=%%c
  9.         )
  10.         for /f "skip=2 tokens=1* delims=[]" %%d in ('find /n /v "" "%%a"') do (
  11.                 set list=%%d
  12.                 set str=%%e
  13.                 if "!list!"=="!line!" (
  14.                         for %%f in (!target!) do (
  15.                                 for %%g in (!aa!) do (
  16.                                         set str=!str:%%f=%%g%%g%%g!
  17.                                         echo;!str!
  18.                                 )
  19.                         )
  20.                 ) else (
  21.                 echo;!str!
  22.                 )
  23.         )
  24. )>>"%%~dpa_new_sourcemonitor.xml"
  25. rem move /y "%%~dpa_new_sourcemonitor.xml" "%%a"
  26. echo;完毕&pause>nul
复制代码
【缩进排版不知道对不对】
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 05:09 , Processed in 0.019499 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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