如何使用bat或vbs或者其他方法,将目录路径数据添加(或修改)到文本文件(txt或xml)特定位置里面?

我的题目是这样的:当前目录有一个名为1.txt(或者1.xml的文件)它的内容大概如下:<config><mainsym>某路径\dict\1.sym</mainsym>... 我的题目是这样的:
当前目录有一个名为1.txt(或者1.xml的文件)
它的内容大概如下:
<config>
<mainsym>某路径\dict\1.sym</mainsym>
<mainfst>某路径\dict\2.sym</mainfst>
<auxifst>某路径\dict\1.lit</auxifst>
...下面的内容类似,作用是定义某些数据文件的路径
</config>

请问:
①如何通过bat或者vbs将这个文件里面的“某路径”替换成为当前文档所在的路径?
②上面的内容里面有一行(如第三行<mainfst>那里)我想将“某路径”替换成为某个系统环境变量的路径(如%userprofile%),这个原理好像是一样的,但是又将如何实现?

本题不限于使用bat或vbs~用其他方法也是可以,但是要安全,我怕中木马和病毒。并且要简单一点,不要弹个窗口出来让我手动输入路径,我要一按某个程序就可以帮我将路径数据替换到这个txt里面。

题目就是这样了,悬赏用上我的现在所有的财富值,盼有高人帮我实现。
展开
 我来答
albumin
推荐于2016-03-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2393万
展开全部
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in (1.txt) do (
set "line=%%a"
set "line=!line:*\dict=<mainsym>%~dp0!"
echo !line!
))>#
move # 1.txt
更多追问追答
追问
成功了一半,但是路径那里变成了“路径”\\1.sym,怎么才能避免双斜杠?
运行这个后会把其他行的都修改成了了开头,大大,你看看我其他行,开头和结尾都是不同的,第三行开头和结尾分别是
第四行是

请问能修改成开头和结尾不变吗?
还有,第二个环境变量那个又怎么实现?我在努力赚积分,会提高悬赏~期待大神你的回答。
追答
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in (1.txt) do (
set "line=%%a"
echo "%%a"|findstr "<.*>">null&&(set "end=!line:*>=!"
call :trimbeg "!end!"
call :setline "!begin!"
)
echo !line!
))>#
move # 1.txt
goto :eof
:trimbeg
set "begin=!line:%~1=!
goto :eof
:setline
set "line=!line:*\dict\=%~1%~dp0!"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式