Это не может работать так, как вы пытаетесь здесь, поскольку переменные окружения раскрываются при разборе строки, а не при ее выполнении. Поскольку %MESSAGE%
имеет смысл только после выполнения первой части, это не может работать.
Это, однако, будет:
setlocal enabledelayedexpansion
set /p MESSAGE= && echo !MESSAGE!
См. help set
для обсуждения отложенного расширения.