powershellでhtmlの特殊文字をエスケープ処理しクリップボードに出力する

PoweShell コンピュータ
PowerShell

プログラムのソースファイルなどを、そのままhtmlに貼り付けると特殊文字で不具合が発生します。特殊文字をエスケープするスクリプトを作りました。

毎度のことながらスクリプトの内容や需要があるかはあれですが、powershellからクリップボードに出力する操作が思いのほか簡単に出来るようでしたので試してみました。

文字列をclipへパイプで流し込むとクリップボードに結果が出力されますので、結果を貼り付けることが出来ます。

以前の記事のドラック&ドロップと組み合わせると、「テキストファイルをドラック&ドロップ」→「テキストファイルの内容をpowersehllで加工」→「加工した結果をクリップボード経由で貼り付け」という流れで色々なテキストファイルの加工が出来そうです。

テキストファイルの文字コードに合わせてGet-ContentのEncodingオプションを修正してください。文字コードを自動認識してくれると楽なんですが…。

スポンサーリンク

スクリプト

<#
# HTMLの特殊文字をエスケープ処理する。
#>

$file = $Args[0]

$txt = Get-Content -LiteralPath $file # -Encoding UTF8
$txt = $txt.Replace('&','&amp;')  # アンバサンド
$txt = $txt.Replace('<','&lt;')   # 小なり
$txt = $txt.Replace('>','&gt;')   # 大なり
$txt = $txt.Replace('"','&quot;') # ダブルクォーテーション
$txt = $txt.Replace(' ','&nbsp;') # 空白

$OutputEncoding = [Console]::OutputEncoding
echo $txt | clip

コメント