【发布时间】:2018-12-11 13:59:05
【问题描述】:
我有两个文件。
values.properties
user=username
password=Password1234!
mybatch.bat
SETLOCAL EnableDelayedExpansion
For /F "tokens=1,2 delims==" %%A IN (path/values.properties) DO (
IF "%%A"=="user" set user=%%B
IF "%%A"=="password" set password=%%B
)
在批处理文件中,密码的值为:
Password1234
所以基本上,“!”消失。我想让“密码”存储任何值,无论包含什么特殊字符。我怎样才能做到这一点?我试图逃避“!”添加“密码=^^%%B”。不工作。
谢谢。
【问题讨论】:
-
禁用延迟扩展,你会看到它有效;问题是
%%A在延迟扩展发生之前扩展,这会消耗!... -
我不敢相信!有效。我仍然不知道为什么我添加了“EnableDelayedExpansion”。我正在为这个脚本工作一段时间,并且在某个地方需要它。非常感谢你。您可以添加您的评论作为答案,以便我批准吗?你摇滚!
标签: batch-file properties delayedvariableexpansion