【发布时间】:2012-11-23 14:15:51
【问题描述】:
我不确定我的旧帐户发生了什么,所以我不得不创建这个新帐户。我写的批处理文件有问题。我让它在用户输入某些信息的地方工作,然后输入将替换文件中的文本。但是,我遇到的问题似乎无法在此处找到确切的答案或帮助我解决问题是...如何替换引号内的数据?我尝试转义引号,但我不确定它是否找到了它,只是没有替换它或什么。这是部分
setlocal DisableDelayedExpansion
(
for /F "usebackq delims=" %%a in ("%drive%:\bdi\%bdi1%\importer.config") do (
set "str=%%a"
setlocal EnableDelayedExpansion
set "str=!str:""saveTcpMessage"" value=""True""="saveTcpMessage" value="False"!"
echo(!str!
endlocal
)
) > %drive%:\bdi\%bdi1%\newfile.txt
%drive%:
cd "%drive%:\bdi\%bdi1%"
del importer.config
rename newfile.txt importer.config
pause
在上面的示例中,我希望批处理文件在名为 importer.config 的文件中找到以下字符串
<add key="saveTcpMessage" value="True" />
如果找到上面的值,我希望它替换为:
<add key="saveTcpMessage" value="False" />
我很确定 find 部分可以正常工作,因为我看到您必须转义 dbl 引号..但是替换部分不起作用。我也尝试在替换中使用双引号,但无济于事。
任何帮助将不胜感激。
【问题讨论】:
-
我使用名为“xmlStarlet”的 DOS 工具来编辑 DOS 脚本中的 XML 文件。
标签: file batch-file double quotes findstr