set / p com espaços no valor variável

Eu queria criar um editor de texto básico em lote e estou usando set / p para obter a entrada do usuário e gravá-la em um arquivo.

Quando digito algo como "olá" ou "olá", funciona bem, mas assim que escrevo algo com um espaço e outro caractere depois, como "olá mundo", a janela se fecha.

Meu código era:

set /p append=Write what you want to append: 

Então eu tentei:

set /p "append=Write what you want to append: "

que eu encontrei online, mas não funcionou.

pausar não ajuda em nada, porque o programa trava assim que eu pressiono enter.

Socorro!

Aqui está o código completo:

:append
set /p "append=Write what you want to append: "
if %append%==return (
    cls
    goto start
)
echo %append% >> %filename%
goto append

:override
cls
echo Name: %filename%
set /p override="Write new content: "
echo %override% > %filename%
pause
cls
goto start

:writefile
echo.
set /p filename=Write file name.extension: 
choice /c AO /m "Append to file or override? "
if %ERRORLEVEL%==1 (
    cls
    echo Name: %filename%
    goto append
) else (
    goto override
)

questionAnswers(3)

yourAnswerToTheQuestion