环境variables不扩展

平台:Windows Vista Service Pack 2(x86)

我正在搞批处理脚本,并意识到他们可以作为命令提示符(是的,我知道批处理脚本运行扔命令提示符)我的意思是批处理脚本可以提示用户input命令,然后调用命令。

SET command= SET /P command=%cd%^> ECHO( %command% ECHO( 

唯一的问题是,当我input例如cd%windir%我得到一个错误消息告诉我,系统找不到指定的path。 所以我input了echo%windir%和echo print%windir%,它完全没有扩展。 我想知道如果问题是因为我有嵌套在%命令%variables的环境variables,但从我所了解的CMD.exe确实支持嵌套的环境variables。 我尝试使用延迟扩展,但variables仍然没有扩大。

添加一个callcmd /c来评估变量的方式。

 @echo off setlocal SET /P command=%cd%^> call %command% ECHO;