如何用批处理 改写一个 .xml 的文件的内容?
现在有F:\peizhi\Config.xml这样的文件这个文件的内容里是这样的<?xmlversion="1.0"encoding="utf-8"?><Optionsp...
现在有 F:\peizhi\Config.xml 这样的文件
这个文件的内容里是这样的
<?xml version="1.0" encoding="utf-8"?>
<Options peizhi="true">
</Options>
如何用 批处理 把这个文件的内容
<Options peizhi="true">
实现 如何 是true 改成false
如果是 false 改成true ? 展开
这个文件的内容里是这样的
<?xml version="1.0" encoding="utf-8"?>
<Options peizhi="true">
</Options>
如何用 批处理 把这个文件的内容
<Options peizhi="true">
实现 如何 是true 改成false
如果是 false 改成true ? 展开
2个回答
展开全部
@echo off&color f1
setlocal enabledelayedexpansion
set fn=F:\peizhi\Config.xml
set s1=true
set s2=false
(for /f "tokens=2 delims=:" %%i in ('findstr/n ".*" "%fn%"')do (
set hh=%%i
if not "!hh!"=="" (set hh=!hh:%s1%=%s2%!
if "!hh!"=="%%i" set hh=!hh:%s2%=%s1%!)
echo.!hh!))>na.txt
move/y na.txt "%fn%"
pause
修改:想起一个问题,如果一行里true和false都有就会改错,改成下面:
@echo off&color f1
setlocal enabledelayedexpansion
set fn=F:\peizhi\Config.xml
set s1=true
set s2=false
(for /f "tokens=2 delims=:" %%i in ('findstr/n ".*" "%fn%"')do (
set hh=%%i
if not "!hh!"=="" (
set hh=!hh:%s1%=ゅ!
set hh=!hh:%s2%=ぅ!)
echo.!hh!))>na.txt
(for /f "tokens=2 delims=:" %%j in ('findstr/n ".*" na.txt')do (
set hh=%%j
if not "!hh!"=="" (
set hh=!hh:ぅ=%s1%!
set hh=!hh:ゅ=%s2%!)
echo.!hh!))>"%fn%"
del na.txt
pause
setlocal enabledelayedexpansion
set fn=F:\peizhi\Config.xml
set s1=true
set s2=false
(for /f "tokens=2 delims=:" %%i in ('findstr/n ".*" "%fn%"')do (
set hh=%%i
if not "!hh!"=="" (set hh=!hh:%s1%=%s2%!
if "!hh!"=="%%i" set hh=!hh:%s2%=%s1%!)
echo.!hh!))>na.txt
move/y na.txt "%fn%"
pause
修改:想起一个问题,如果一行里true和false都有就会改错,改成下面:
@echo off&color f1
setlocal enabledelayedexpansion
set fn=F:\peizhi\Config.xml
set s1=true
set s2=false
(for /f "tokens=2 delims=:" %%i in ('findstr/n ".*" "%fn%"')do (
set hh=%%i
if not "!hh!"=="" (
set hh=!hh:%s1%=ゅ!
set hh=!hh:%s2%=ぅ!)
echo.!hh!))>na.txt
(for /f "tokens=2 delims=:" %%j in ('findstr/n ".*" na.txt')do (
set hh=%%j
if not "!hh!"=="" (
set hh=!hh:ぅ=%s1%!
set hh=!hh:ゅ=%s2%!)
echo.!hh!))>"%fn%"
del na.txt
pause
追问
。。你的有问题。
你的别我别的 节点的值也修改了。。。我只想要改
这个节点的值。
追答
哦,改写一下,(假定你要改的行就如样文件所示,这一行内再无别的true或false)
@echo off&color f1
setlocal enabledelayedexpansion
set fn=F:\peizhi\Config.xml
set s1=true
set s2=false
for /f "delims=:" %%a in ('findstr/in "Options.peizhi" "%fn%"')do set h%%a=y
(for /f "tokens=1* delims=:" %%i in ('findstr/in ".*" "%fn%"')do (
if not defined h%%i (echo.%%j)else (
set hh=%%j
if not "!hh!"=="" (set hn=!hh:%s1%=%s2%!
if "!hn!"=="!hh!" set hn=!hh:%s2%=%s1%!)
echo.!hn!
)))>ykytemp
move/y ykytemp "%fn%"
pause
展开全部
改为TRUE的批处理语句:
ECHO ^<?xml version="1.0" encoding="utf-8"?^> > Config.xml
ECHO ^<Options peizhi="true"^> >> Config.xml
ECHO ^</Options^> >> Config.xml
改为FALSE的批处理语句:
ECHO ^<?xml version="1.0" encoding="utf-8"?^> > Config.xml
ECHO ^<Options peizhi="false"^> >> Config.xml
ECHO ^</Options^> >> Config.xml
ECHO ^<?xml version="1.0" encoding="utf-8"?^> > Config.xml
ECHO ^<Options peizhi="true"^> >> Config.xml
ECHO ^</Options^> >> Config.xml
改为FALSE的批处理语句:
ECHO ^<?xml version="1.0" encoding="utf-8"?^> > Config.xml
ECHO ^<Options peizhi="false"^> >> Config.xml
ECHO ^</Options^> >> Config.xml
追问
我想灵活点。
先检查 如果 这个是true 就改成false
如果是 false 就改成true!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询