首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用带有特殊字符的批处理回显

使用带有特殊字符的批处理回显
EN

Stack Overflow用户
提问于 2011-09-05 21:10:39
回答 7查看 191.6K关注 0票数 80

这可能真的很容易,但在网上没有答案。我想通过批处理将一个XML行回显到一个文件中,但它误解了重定向的XML结束标记">“。这行代码如下:

代码语言:javascript
复制
echo <?xml version="1.0" encoding="utf-8" ?> > myfile.xml

有没有办法给批处理解析器一个提示,让它不要解释一个特殊的字符串?我使用了双引号,但它也会将它们写到文件中!回显后的文件应该如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-09-05 21:13:07

您可以使用^转义外壳元字符

代码语言:javascript
复制
echo ^<?xml version="1.0" encoding="utf-8" ?^> > myfile.xml

请注意,由于echo是一个内置的shell,它不遵循通常的引号约定,因此只需引用参数就会输出引号,而不是删除引号。

票数 122
EN

Stack Overflow用户

发布于 2015-11-23 18:30:19

为了使用特殊字符,比如Windows上的'>‘,你需要在它前面放置一个特殊的转义字符。

例如

代码语言:javascript
复制
echo A->B

将不起作用,因为'>‘必须由’^‘转义:

代码语言:javascript
复制
 echo A-^>B

另请参见escape sequences

有一个简短的批处理文件,它打印一组基本的特殊字符及其转义序列。

票数 26
EN

Stack Overflow用户

发布于 2011-09-05 21:29:00

另一种方法:

代码语言:javascript
复制
@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 # 
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7308586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档