【问题标题】:Batch: Set password with special characters to variable批处理:将带有特殊字符的密码设置为变量
【发布时间】:2016-05-21 12:31:43
【问题描述】:

因此,如果我想设置这样的密码,批量保留很多特殊字符,如果使用它们会导致问题:

SET PASSWORD="123%6!@##$^&*_-"

其中一些字符将在分配后被剥离,例如百分比“%”字符被解释为参数,有没有办法让批处理将其视为字符串而不是解释特殊字符?不,我无法转义那些特殊字符,这基本上是我们告诉用户编辑批处理文件并设置密码的文件。

【问题讨论】:

  • 从本质上讲,您是在追逐野鹅。由于用户可以将任何字符放入文件中,因此您需要处理特殊字符的所有可能性 - 无疑可以找到一种方法来正确处理每个字符,但请考虑 ["=%^&*?)~:\/<>,;],当然还有空格。字符盒也是。一场噩梦——我建议需要其他一些方法。

标签: windows batch-file


【解决方案1】:

您可以使用一些 magic 批处理函数来处理任何字符串,例如 magic echo。

但我认为用户最好不要编辑批处理文件本身,而是编辑密码文件,例如pwd.txt。
然后你可以简单地阅读这个文件:

@echo off
setlocal EnableDelayedExpansion
set /p password= < pwd.txt
echo !password!

这读取文件的第一行,任何字符都没有问题。

【讨论】:

    猜你喜欢
    • 2019-12-07
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2021-10-12
    • 2014-03-03
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多