# encoding: ascii
# api: powershell
# title: Repair-ScriptQuotes
# description: Script to replace special quote characters when copy – pasting from Word or from blogs.
# version: 0.1
# type: function
# author: P Sczepanski
# license: CC0
# function: Repair-ScriptQuotes
# x-poshcode-id: 3816
# x-archived: 2012-12-16T04:25:52
# x-published: 2012-12-11T13:16:00
#
# See also my blog entry “Quote or not quote” at http://redtoo.com/blog/?cat=13
#
function Repair-ScriptQuotes {
param (
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[string]$path
)
if ( !( Test-Path $path ) ) {
Write-Warning "'$path' does not exist."
Continue
}
(( Get-Content $path) |
ForEach-Object {
# replace double quotes
[Net.WebUtility]::HtmlDecode($_)
} |
ForEach-Object {
# replace double quotes
$_ -replace "(\u201c|\u201d|\u201e)",[char]34
} |
ForEach-Object {
# replace single quotes
$_ -replace "(\u2018|\u2019|\u201a)",[char]39
} |
ForEach-Object {
# replace dash
$_ -replace "(\u2013)",[char]45
} |
ForEach-Object {
# replace tab with four spaces
$_ -replace "`t",(" " * 4)
}) |
Set-Content $path
Write-Host "Done"
}