🛠️

PowerShell:ファイル名に使用できない文字の削除

2021/04/10に公開

ファイル名を変更する際に、変数に格納する文字列にファイル名に使えない禁止文字が入っていた際に禁止文字を削除するFunctionを調べてみた。

ちなみにファイルやフォルダー名に使用できない文字列はこちら。

記号 説明
|円記号
/ スラッシュ
: コロン
* アスタリスク
? クエスチョンマーク、疑問符
" ダブルクォーテーション
<> 不等号
| 縦棒

禁止文字の削除用Function

Remove-InvalidFileNameChars.ps1
Function Remove-InvalidFileNameChars {
	param(
	  [Parameter(Mandatory=$true,
		Position=0,
		ValueFromPipeline=$true,
		ValueFromPipelineByPropertyName=$true)]
	  [String]$Name
	)

	$invalidChars = [IO.Path]::GetInvalidFileNameChars() -join ''
	$re = "[{0}]" -f [RegEx]::Escape($invalidChars)
	return ($Name -replace $re)
  }

使い方

$test = "t\e:s*t< t|est"
Remove-InvalidFileNameChars $test
# 出力結果
test test

Discussion