为什么批处理中使用SET /P定义的变量无法被系统正常识别?
问题原因
批处理的set命令对空格非常敏感,你代码里的SET /p filevui = FileName: 中,变量名filevui和等号之间多了一个空格,导致系统实际创建的变量名为filevui (末尾自带空格),你后续调用的%filevui%是不存在的变量,批处理解析时会直接把未识别的变量标识当成系统命令执行,就会抛出你遇到的报错。
修复方案
删掉变量名和等号之间的多余空格即可,批处理set语法要求变量名和等号、等号和值之间都不要加多余空格,否则空格会被计入变量名或变量值中。
修正后完整代码
@echo off SET /p filevui=FileName: echo %filevui% pause
如果需要避免用户直接回车导致变量为空的情况,可以预先给变量设置默认值:
@echo off :: 先设置默认值,用户直接回车会沿用该值 set "filevui=未输入任何内容" SET /p filevui=FileName: echo %filevui% pause
内容的提问来源于stack exchange,提问作者vp cume
相关产品推荐
相关产品推荐

