function Get-LegalPathName($Path){ $illegalChars = [System.IO.Path]::GetInvalidFileNameChars()foreach($illegalChar in $illegalChars) { $Path = $Path.Replace($illegalChar, "_") }$Path}同时来测试一下它的效果:
PS> Get-LegalPathName "some:"illegal"path<chars>.txt"some__illegal__path_chars_.txt支持所有PS版本