batch-file - 如何逃脱!在 .bat 文件的设置行中

标签 batch-file set escaping

我有一个包含 ! 的密码。无论我尝试过什么,它都会掉落 !。我的脚本使用的是 ENABLEDELAYEDEXPANSION,所以我不确定这是否就是我遇到问题的原因。这是我的代码:

set password=cccvvv!
echo %password%

当我运行脚本时,我得到 cccvvv

我试过以下方法:

set password=cccvvv!!
set password=cccvvv^^!

似乎没有任何效果。

我怎样才能让它保持在变量中的 ! 上?

最佳答案

测试一下

@echo off
    setlocal enableextensions enabledelayedexpansion

    rem Escaped exclamation
    set "password=this is a test^!"

    rem See the environment block
    set password

    rem Echo with normal expansion
    echo %password%

    rem Echo with delayed expansion
    echo !password!

当延迟扩展处于事件状态时,您需要转义感叹号以将其存储在变量中,并且当您在延迟扩展处于事件状态时使用没有延迟扩展语法的变量时,解析器通常会删除它。

关于batch-file - 如何逃脱!在 .bat 文件的设置行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009489/

相关文章:

windows - 如何转义批处理文件中的符号?

powershell - 如何在批处理文件中运行powershell命令

core-data - 如何在 sqlite3 文本列返回的 c 字符串中制作换行符?

batch-file - 无法在批处理文件中转义感叹号

java - 用于编译和运行java东西的.bat文件

XML : tools for re-indenting XML in batch mode

matlab - MATLAB 是否有类似集合的数据类型?

java - 这两个java变量声明有什么区别?

Ruby 删除三重引号

C 格式化表格