補助ファイルに%を出力する(仮)

LaTeXを使って、補助(テキスト)ファイルを作る際に%を出力したいときの解決策として、catcodeに訴えるという方法を思いつき実行しました。
(他に楽な方法があるかもしれないですが、とりあえず覚書として。習いたてのことばかり使っているので、マナーの悪いコードかもしれないです)

\makeatletter

\catcode`\%=11

\newcounter{currentnumber}
\setcounter{currentnumber}{1}
\newcounter{endnumber}
\setcounter{endnumber}{10}

\newcommand{\periwo}[1]{
 \if@filesw
  \newwrite\@peri\relax
  \immediate\openout\@peri #1.tex\relax
 \fi
 \if@filesw
  \immediate\write\@peri{%%%% コメントアウトも}
  \immediate\write\@peri{%%%% 出力できるよ}
  \immediate\write\@peri{\string\begin{theorem}{#1}}
  \immediate\write\@peri{}
  \immediate\write\@peri{\string\end{theorem}}
 \fi
 \if@filesw
  \immediate\closeout\@peri
 \fi
 \stepcounter{currentnumber}
}

\newcommand{\PERIWO}{
  \periwo{\thecurrentnumber}
}

\def\periwoloop{
  \PERIWO
  \ifnum\thecurrentnumber>\theendnumber\relax
  \else\expandafter\periwoloop\fi
}

\periwoloop

を(\begin{document} と\end{document} の間に書いて実行すると)
1.tex, 2.tex, ..., 10.texが生成され、
n.texの中身は

%%%% コメントアウトも
%%%% 出力できるよ
\begin{theorem}{n}

\end{theorem}

になります。

ぺりをだねぇ