This is a pretty old question, but I put together a hybrid of the solutions from @Fabricio and @jeb that both worked correctly and added some readability:
setlocal enableDelayedExpansion
set NL=^
rem two empty line required
set var=this is a !NL! ^
multi !NL! ^
line !NL! ^
string !NL!
echo !var!