在Windows PowerShell中更改路径分隔符

时间:2009-04-23 23:29:50

标签: powershell

是否可以让PowerShell始终输出/而不是\?例如,我希望get-location的输出为C:/ Documents and Settings / Administrator。

更新

感谢使用replace的示例,但我希望这可以在全球范围内发生(例如制表符完成等)。根据Matt的观察,分隔符由System.IO.Path.DirectorySeparatorChar定义,它在实践中出现,并且从文档中只读,我猜这是不可能的。

3 个答案:

答案 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:/