Verificar se uma variável de ambiente é definida sem extensões de comando e sem usar um arquivo em lotes?

Eu preciso usar uma linha de comando cmd.exe (cmd.exe está sendo chamado da ferramenta de compilação gyp) para determinar se uma variável de ambiente é definida ou não. Como posso fazer isso? Estou bem supondo que o valor da variável não contém aspas simples ou duplas, mas não pode presumir que as extensões de comando estejam ativadas.

Eu tentei o seguinte, que funciona muito bem em um arquivo .bat, mas falha quando digitado diretamente na linha de comando:

IF "%UNDEFINED%" == "" (echo yes)

Quando essa linha exata está em um arquivo .bat e executada, vejoyes como a saída. Quando eu digito na linha de comando, a saída está vazia. Estou testando isso no Windows XP SP3, embora meu colega de trabalho veja os mesmos resultados no Windows 7. Esse é o método sugerido porhttp://support.microsoft.com/kb/121170 ehttp://www.robvanderwoude.com/battech_defined.php. Eu não quero usarIF DEFINED UNDEFINED (echo yes) porque isso não funcionará se as extensões de comando estiverem desativadas.

A resposta mais votada na postagem a seguir me levou a acreditar que esse problema está relacionado a como a porcentagem de expansão é tratada de maneira diferente no "CmdLineParser" versus o "BatchLineParser", mas ainda não me levou a uma solução:Como o Windows Command Interpreter (CMD.EXE) analisa os scripts?

questionAnswers(5)

yourAnswerToTheQuestion