我正在编写一个批处理文件,我需要输出一个包含’!’的字符串到另一个文件.但是当我将该字符串回显到另一个文件时,它会删除“!”从输出.
例如:
输入:
set LINE=Hi this is! output echo !LINE!>>new_file.txt
new_file.txt中的输出是:
Hi this is output
另外,如果输入
set LINE=Hello!! this is output!! echo !LINE!>>new_file.txt
输出在new_file.txt中:
Hello
因此,它跳过! (感叹号)从输出到new_file.
如果我使用%LINE%,那么只需在输出文件中显示“echo is on”即可.
请建议一种方法来克服这个问题.
如果您启用了延迟扩展,并希望输出感叹号,则需要将其解除.
感叹号的转义不需要一个或两个插入符号,具体取决于位置.
@echo off set test1=Test1! setlocal EnableDelayedExpansion set test2=Test2^^! set "test3=Test3^!" echo !test1! echo !test2! echo !test3!
差异!var!和块中的%var%在DOS batch: Why are my set commands resulting in nothing getting stored?中进行了说明
批处理解析器的说明可以在How does the Windows Command Interpreter (CMD.EXE) parse scripts?找到
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。