使用 Echo 打印到文件时如何转义 XML 文本中的字符

How to escape characters in XML text when using Echo print to file

我正在尝试将以下行输出到 xml 文件。

我正在使用以下命令:

echo "<?xml version="1.0" encoding="utf-8"?>" >> MyFile.xml

唯一的问题是它在文件的开头和结尾包含引号,所以在我的文件内部看起来像这样:

"<?xml version="1.0" encoding="utf-8"?>"

而不是这个:

<?xml version="1.0" encoding="utf-8"?>

但是如果我尝试 运行 没有第一个和最后一个引号的批处理文件,它会失败并显示 >> was unexpected at this time.

所以...它需要这些引号才能工作,但它会打印这些标记...有什么办法可以做到这一点吗?

我假设您使用的是 windows,所以试试这个:

echo ^<?xml version="1.0" encoding="utf-8"?^> >> MyFile.xml

一种可能的解决方法是使用 delayed expansion:

@echo off
setlocal enableDelayedExpansion
set "xml_line=<?xml version="1.0" encoding="utf-8"?>"
echo !xml_line!
:::
endlocal