命令提示符(cmd.exe)中在FOR命令内通过变量调用FOR/IF内部命令时无法识别的问题求助
命令提示符(cmd.exe)中在FOR命令内通过变量调用FOR/IF内部命令时无法识别的问题求助
大家好,我最近在使用cmd.exe的时候遇到了一个百思不得其解的问题,想请教下各位大佬:
问题描述
当我在FOR命令的内部,通过变量来调用FOR或者IF这类cmd内部命令时,系统总是提示无法识别该命令。
示例命令
for /f %a in ("FOR") do %a /?
报错信息
'FOR' is not recognized as an internal or external command, operable program or batch file.
补充细节
- 上面的示例是尝试在FOR命令里通过循环变量
%a来执行FOR /?,结果直接报错了 - 只要是在FOR命令的命令执行段里,通过变量调用任何
FOR或IF命令都会触发这个问题 - 不管用的是FOR自带的循环变量(比如
%a)还是普通环境变量(比如开启延迟扩展后的!var!),结果都是一样的失败 - 如果不通过变量,直接在FOR命令里写死
FOR /?或者IF /?,就能正常执行,完全没问题
已做的排查尝试
- 我试过把命令写到批处理文件里执行,结果还是一样的报错
- 也尝试过开启延迟变量扩展,用
!var!来存储并调用FOR/IF命令,但依然无法被系统识别
备注:内容来源于stack exchange,提问作者acmctr
相关产品推荐
相关产品推荐

