【问题标题】:How to input a string from user into environment variable from batch file如何将用户的字符串从批处理文件输入环境变量
【发布时间】:2010-12-03 17:03:49
【问题描述】:

我想提示用户输入一些详细信息,然后稍后将其用作命令行参数。

【问题讨论】:

    标签: input batch-file cmd


    【解决方案1】:

    您可以将set/p 参数一起使用:

    SET /P variable=[promptString]

    /P 开关允许您将变量的值设置为输入行 由用户输入。在读取前显示指定的 promptString 输入行。 promptString 可以为空。

    所以,只需使用类似的东西

    set /p Input=Enter some text: 
    

    稍后您可以将该变量用作命令的参数:

    myCommand %Input%
    

    但请注意,如果您的输入可能包含空格,那么引用它可能是个好主意:

    myCommand "%Input%"
    

    【讨论】:

    • 输入密码是这样的吗?
    • 对此有很多答案,通常通过 VBScript 获取密码而不回显到控制台。
    • 我用它来询问输入文件路径以提供给 EXE,但如果该 PATH 还包含环境变量 ("%MY_SRC_DIR%\blabla\file.ext") 它不起作用,我必须给它没有环境变量的绝对或相对文件路径。有什么办法解决这个问题?
    • @domonicbri7:您需要扩展环境变量,也就是说,使其对cmd 解析器可见两次。 call set Input=%Input% 将是一种方式。这将被解析两次(由于call),第一次扩展%Input%,第二次扩展你在那里的任何环境变量。但这与这个问题或答案没有任何关系。
    【解决方案2】:

    一个相当迂回的方式,只是为了完整:

     for /f "delims=" %i in ('type CON') do set inp=%i
    

    当然,这需要 ^Z 作为终止符,因此 Johannes 的答案在所有实际方面都更好。

    【讨论】:

    • 那个……很有趣。现在你只需要告诉用户只有她输入的 last 行会被使用:-)
    猜你喜欢
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    相关资源
    最近更新 更多