Input 如何将用户的字符串从批处理文件输入到环境变量中

Input 如何将用户的字符串从批处理文件输入到环境变量中,input,batch-file,cmd,Input,Batch File,Cmd,我想提示用户输入一些详细信息,然后稍后将其用作命令行参数。您可以将设置与/p参数一起使用: SET/p变量=[promptString] /p开关允许您将变量的值设置为输入行 由用户输入。在读取前显示指定的promptString 输入行。promptString可以为空 因此,只需使用以下内容 set /p Input=Enter some text: 稍后,您可以将该变量用作命令的参数: myCommand %Input% 但是要小心,如果您的输入可能包含空格,那么最好引用它: myC

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

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

SET/p变量=[promptString]

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

因此,只需使用以下内容

set /p Input=Enter some text: 
稍后,您可以将该变量用作命令的参数:

myCommand %Input%
但是要小心,如果您的输入可能包含空格,那么最好引用它:

myCommand "%Input%"

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

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

当然,这需要^Z作为终结者,因此约翰尼斯的答案在所有实际方面都更好。

那一个是。。。有趣。现在,您只需要教育用户,只有她最后输入的一行才会被使用:-)类似于输入密码吗?对此有很多答案,通常通过VBScript获得密码,而无需回显到控制台。我使用它来请求输入文件路径,以提供给EXE,但是,如果该路径还包含环境变量(“%MY_SRC_DIR%\blabla\file.ext”),则该路径不起作用,我必须为其提供没有环境变量的绝对或相对文件路径。有没有办法解决这个问题?@dominicbri7:您需要扩展环境变量,也就是说,让它对
cmd
解析器可见两次<代码>调用集输入=%Input%将是一种方法。这将被解析两次(由于
调用
),第一次扩展
%Input%
,第二次扩展其中的任何环境变量。但这与这个问题或答案没有任何关系。