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

JavaScript版

このスクリプトは筆者が当ブログの記事にソースコードを貼り付けるために作成しましたが、より利便性を高める為、文字列を貼り付ける入力フォームでJavaScriptでエスケープ処理を行うページを作成してみました。以下リンク
JavaScriptでhtmlの特殊文字をエスケープ処理しクリップボードに出力する
変換前変換後実 行クリアHighlighting Code BlockC#XMLHTMLTEXTPythonJavaScript説明HTMLで文章上で使ってはいけない文字を置き換えます。ブログ記事にプログラムのソースコードの貼り付け用に作成...

コメント