加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Windows – %变量%和!变量之间的差异!在批处理文件中

发布时间:2021-01-24 02:28:02 所属栏目:Windows 来源:网络整理
导读:我正在编写一个批处理文件,我需要输出一个包含’

我正在编写一个批处理文件,我需要输出一个包含’!’的字符串到另一个文件.但是当我将该字符串回显到另一个文件时,它会删除“!”从输出.

例如:
输入:

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?找到

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读