如何使PowerShell始终输出/
而非\
?例如,我希望get-location的输出为C:/ Documents and Settings / Administrator。
更新
感谢提供使用replace的示例,但我希望此更改在全局范围内生效(例如,制表符完成等)。根据Matt的观察,分隔符由System.IO.Path.DirectorySeparatorChar定义,该分隔符在实践中和文档中均为只读,我猜这不可能实现。
如何使PowerShell始终输出/
而非\
?例如,我希望get-location的输出为C:/ Documents and Settings / Administrator。
更新
感谢提供使用replace的示例,但我希望此更改在全局范围内生效(例如,制表符完成等)。根据Matt的观察,分隔符由System.IO.Path.DirectorySeparatorChar定义,该分隔符在实践中和文档中均为只读,我猜这不可能实现。
这是一个好问题。底层的.NET框架将其表述为System.IO.Path.DirectorySeparatorChar,它是一个读/写属性,因此我认为您可以这样做:
[IO.Path]::DirectorySeparatorChar = '/'
...看起来运行成功了,但如果您输入以下内容:
[IO.Path]::DirectorySeparatorChar
...它告诉你它仍然是'\'。就像它没有"接管"一样。唉,我甚至不确定PowerShell是否会尊重那个特定的值,即使它正在改变。
我想我会发布这个(冒着它实际上没有回答你的问题的风险),以防它能帮助其他人找到真正的答案。我确信这与DirectorySeparatorChar字段有关。
将“\”替换为“/”。
PS C:\Users\dance2die> $path = "C:\Documents and Settings\Administrator"
PS C:\Users\dance2die> $path.Replace("\", "/")
C:/Documents and Settings/Administrator
PS C:\> filter replace-slash {$_ -replace "\\", "/"}
PS C:\> Get-Location | replace-slash
C:/
DirectorySeparatorChar
是只读属性。 尝试将[IO.Path]::DirectorySeparatorChar = '/'
更改为斜杠时,会返回相应的错误消息。 - axmrnv