在Windows PowerShell中更改路径分隔符

ctu*_*fli 15 powershell

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

更新

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

Mat*_*ton 9

这是一个很好的问题.底层的.NET框架将它表示为System.IO.Path.DirectorySeparatorChar,它是一个读/写属性,所以我想你可以这样做:

[IO.Path]::DirectorySeparatorChar = '/'
Run Code Online (Sandbox Code Playgroud)

......这似乎成功了,除非你输入以下内容:

[IO.Path]::DirectorySeparatorChar
Run Code Online (Sandbox Code Playgroud)

......它告诉你它仍然是'\'.这就像它不是"抓住".哎呀,即使它正在改变,我也不确定PowerShell是否尊重这一特定价值.

我以为我会发布这个(冒着它实际上没有回答你的问题的风险),以防它帮助其他人找到真正的答案.我确信它与DirectorySeparatorChar字段有关.

  • 更新:DirectorySeparatorChar现在是只读属性。[[IO.Path] :: DirectorySeparatorChar ='/'`失败,并显示相应的错误消息。 (2认同)

dan*_*die 8

用...来代替 "/".

PS C:\Users\dance2die> $path =  "C:\Documents and Settings\Administrator"
PS C:\Users\dance2die> $path.Replace("\", "/")
C:/Documents and Settings/Administrator
Run Code Online (Sandbox Code Playgroud)

  • 这不涉及OP。 (2认同)