PowerShell 技能连载 - 移除非法的路径字符

适用于 PowerShell 所有版本

在路径名中,有些字符,例如冒号和双引号,都是非法的。如果您的脚本中的路径名称来自于外部信息,那么您可能希望最终的路径名是合法的。

以下是一个将路径中所有非法字符替换成下划线的函数:

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

PowerShell 技能连载 - 移除非法的路径字符

http://blog.vichamp.com/2014/09/12/removing-illegal-pathcharacters/

作者

吴波

发布于

2014-09-12

更新于

2022-07-06

许可协议

评论