変換するのは、物理行の最後の文字が単独の ^(CMD)またはバッククォート(PowerShell)で、行継続だと確実に判断できる箇所だけです。行継続文字の後に空白がある場合(about_Parsing: バッククォートの後に余分な空白があると行継続にならない)、エスケープ文字が連続する場合、最終行や次の行が空行の場合、コメント(REM、::、#、<# #>)・引用符付き文字列・here-string の中、PowerShell の stop-parsing トークン --% の後、改行の前後どちらにも空白がない場合は変換しません。PowerShell のバッククォートはエスケープされていない空白またはタブの直後にある必要があり、直前の token に付いたものはその token の一部です。コマンド引数の中の #(KEY=#value、コマンド名の後の 2#x)はリテラル、式の後の #(2# …、$true# …)はコメントの開始です。どちらか判断できない場合は # をコメントとみなしてその行を変換しません。
CMD の ^ による行継続は次の行の先頭文字もエスケープし得るため、CMD では ^ の直前がエスケープされていない空白またはタブで、次の行の先頭が空白・タブ・通常の文字(英数字と - . / \ _ : + # $ * ? @ [ ] { } ~ ')であり、改行がリダイレクトやコマンド区切りの直後、IF / FOR コマンドの中にない場合だけ変換します。
変換後のテキストは変換先のシェルとして読み直し、そこで行継続にならない行は元のまま残します。変換しなかった行は行番号付きで表示します。行の途中にある ^ やバッククォートはエスケープ文字なので一切変更しません。PowerShell の |・演算子・カンマ・開き括弧の後の暗黙的な行継続は変換対象外です。
「1行化」は、対象と判断した行継続文字とその直後の改行だけを削除し、次の行のインデントは保持します。変換処理自体は改行コード(CRLF / LF)を保持しますが、ブラウザーのテキスト入力欄は通常、内容を LF 改行として渡します。