Não seria algo assim tão claro? Também elimina a questão de fazer suposições sobre a variável processor_architecture apontada por @MBu acima.
if defined ProgramFiles(x86) (
set appDir=%ProgramFiles(x86)%\installeddir
) else (
set appDir=%ProgramFiles%\installeddir
)
if exist %appDir%\app.exe (
echo We're installed in %appDir%. Woo hoo!
) else (
echo Nope. Not installed.
)
Outra alternativa que acaba de ocorrer para mim seria que seu programa de instalação ou arquivo em lote escrevesse uma chave no registro com o local de instalação (pode ser feito com reg.exe, um utilitário padrão do Windows). Eu ficaria feliz em preencher essa solução um pouco mais se você estiver interessado.