Ich habe quasi saputellos Antwort nochmal in `expl3` implementiert. Die Eingabe von `\writeextra` wird nicht expandiert, sondern direkt so in die Datei geschrieben.
\documentclass{scrreprt}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage{xparse}
\ExplSyntaxOn
\cs_generate_variant:Nn \iow_now:Nn { nn }
\iow_new:N \l_cis_out_stream
\tex_chardef:D \shell_escape = 18
\iow_open:Nn \l_cis_out_stream { extra1.tex }
\NewDocumentCommand \writeextra { +v }
{
\group_begin:
\tex_endlinechar:D = 10
\tex_newlinechar:D = 13
\iow_now:Nn \l_cis_out_stream { #1 }
\group_end:
}
\AfterReadingMainAux
{
\iow_now:Nn \l_cis_out_stream { \end{document} }
\iow_close:N \l_cis_out_stream
\iow_now:Nn \shell_escape { pdflatex ~ extra1.tex }
}
\writeextra
{
\documentclass{scrreprt}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß}}
\usepackage[ngerman]{babel}
% ggf. Präambel erweitern
\begin{document}
}
\ExplSyntaxOff
\begin{document}
Hier ist ein Satz. \par
\writeextra{Schreibe diesen Text in die äxterne Datei extra1.pdf
Sogar mit newlines\par}
Hier ist wieder ein Satz. \par
\writeextra{Schreibe diesen Text auch in die Datei extra1.pdf dazu.}
\end{document}