批处理中的用户输入在 Windows 8 中不起作用,还是我错了?

Stu*_*rts 0 batch windows-8

@ECHO OFF
CLS

SET ad =
SET /p ad = Do you want to [A] Allow or [D] Deny? 
ECHO "%ad%"
Run Code Online (Sandbox Code Playgroud)

我输入A并按下Enter,我得到的输出是:

Do you want to [A] Allow or [D] Deny?
""
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

use*_*686 5

你没有设置%ad%。您正在设置%ad %.

有些语言比其他语言对空格更挑剔。该cmd.exe脚本语言就是其中的一员-设置变量的语法是set name=value,如果你周围添加空间=,成为他们的变量名和值的一部分

如果您只为 Windows 7/8 编写脚本,我强烈建议您学习 PowerShell。cmd.exe 使用的语言很糟糕