是否可以让PowerShell始终输出/
而不是\
?例如,我希望get-location的输出为C:/ Documents and Settings / Administrator。
更新
感谢使用replace的示例,但我希望这可以在全球范围内发生(例如制表符完成等)。根据Matt的观察,分隔符由System.IO.Path.DirectorySeparatorChar定义,它在实践中出现,并且从文档中只读,我猜这是不可能的。
答案 0 :(得分:8)
将“\”替换为“/".
PS C:\Users\dance2die> $path = "C:\Documents and Settings\Administrator"
PS C:\Users\dance2die> $path.Replace("\", "/")
C:/Documents and Settings/Administrator
答案 1 :(得分:8)
这是一个很好的问题。底层的.NET框架将它表示为System.IO.Path.DirectorySeparatorChar,它是一个读/写属性,所以我想你可以这样做:
[IO.Path]::DirectorySeparatorChar = '/'
...这似乎成功了,除非你输入以下内容:
[IO.Path]::DirectorySeparatorChar
......它告诉你它仍然是'\'。这就像它不是“抓住”。哎呀,即使它正在发生变化,我也不确定PowerShell是否会尊重这一特定价值。
我以为我会发布这个(冒着它实际上没有回答你的问题的风险)以防其他人找到真正的答案。我确信它与DirectorySeparatorChar字段有关。
答案 2 :(得分:3)
您可以创建一个过滤器(或函数)来管道您的路径:
PS C:\> filter replace-slash {$_ -replace "\\", "/"}
PS C:\> Get-Location | replace-slash
C:/