Batch - 39 Lines (202 bytes)
I wanted to cut down on the size by enabling delayed expansion by running the code inside of a cmd call using the /v on switch, but couldn'tcould not get passedpast all the carats.
@S^ ET^ LO^ C^ AL^ EN^ ABL^ E^ DEL^ AY^ E^ DEX^ P^ ANS^ IO^ N @S^ ET^ 0=Hello @S^ ET^ 1=^ ,^ Wor @S^ ET^ 2=l @S^ ET^ 3=d @E^ CHO^ !^ 0^ !!1^ !!2^ !!3^ !^^^ ! Without the newlines (and carats to escape newlines):
@SETLOCAL ENABLEDELAYEDEXPANSION @SET 0=Hello @SET 1=, Wor @SET 2=l @SET 3=d @ECHO !0!!1!!2!!3!^^!