在批处理SET / P命令"?"与#34;一起发生的事故在这个时候意外发生了#34;

时间:2015-12-09 10:10:53

标签: batch-file set prompt

听起来我不能放"?"在批处理(.bat)脚本中提示:

set /p AREYOUSURE= Are you sure (Y/[N]) ?

它与消息崩溃:

  

?这时出人意料。

但是,没有""

,它运作良好

注意:我正在运行Windows 7 64位。

1 个答案:

答案 0 :(得分:5)

这不是因为问号,而是因为右括号。您正在块中使用此语句,例如

if foo (
  set /p AREYOUSURE= Are you sure (Y/[N]) ?
)

右括号关闭了块,然后让解析器在块之后偶然发现第一个字符

您可以转义右括号:

set /p AREYOUSURE= Are you sure (Y/[N]^) ?

或只是使用引号,我总是建议:

set /p "AREYOUSURE=Are you sure (Y/[N])?"

对于类似这样的问题,我个人会使用choice,但是:

choice /m "Are you sure"

但是,按这种方式返回时,你无法做出默认选择。