这可能真的很容易,但在网上没有答案。我想通过批处理将一个XML行回显到一个文件中,但它误解了重定向的XML结束标记">“。这行代码如下:
echo <?xml version="1.0" encoding="utf-8" ?> > myfile.xml
有没有办法给批处理解析器一个提示,让它不要解释一个特殊的字符串?我使用了双引号,但它也会将它们写到文件中!回显后的文件应该如下所示:
<?xml version="1.0" encoding="utf-8" ?>
发布于 2011-09-05 21:13:07
您可以使用^
转义外壳元字符
echo ^<?xml version="1.0" encoding="utf-8" ?^> > myfile.xml
请注意,由于echo
是一个内置的shell,它不遵循通常的引号约定,因此只需引用参数就会输出引号,而不是删除引号。
发布于 2015-11-23 18:30:19
为了使用特殊字符,比如Windows上的'>‘,你需要在它前面放置一个特殊的转义字符。
例如
echo A->B
将不起作用,因为'>‘必须由’^‘转义:
echo A-^>B
另请参见escape sequences。
有一个简短的批处理文件,它打印一组基本的特殊字符及其转义序列。
发布于 2011-09-05 21:29:00
另一种方法:
@echo off
for /f "useback delims=" %%_ in (%0) do (
if "%%_"=="___ATAD___" set $=
if defined $ echo(%%_
if "%%_"=="___DATA___" set $=1
)
pause
goto :eof
___DATA___
<?xml version="1.0" encoding="utf-8" ?>
<root>
<data id="1">
hello world
</data>
</root>
___ATAD___
rem #
rem #
https://stackoverflow.com/questions/7308586
复制相似问题