2009-04-23 57 views
12

是否有可能讓PowerShell始終輸出/而不是\?例如,我希望get-location的輸出爲C:/ Documents and Settings/Administrator。在Windows PowerShell中更改路徑分隔符

更新

感謝您使用替換的例子,但我希望這在全球範圍內發生的(例如標籤完成,等)。根據馬特的觀察,分隔符是由System.IO.Path.DirectorySeparatorChar定義的,在實踐中出現,文檔是隻讀的,我猜這是不可能的。

回答

6

這是一個很好的問題。 .NET Framework的基礎面以此爲System.IO.Path.DirectorySeparatorChar,這是一個讀/寫性能,所以我想你可以這樣做:

[IO.Path]::DirectorySeparatorChar = '/' 

...這似乎是成功的,除非然後輸入:

[IO.Path]::DirectorySeparatorChar 

......它告訴你它仍然是'\'。這就像它不是「持續」。哎呀,我甚至不確定即使PowerShell發生了變化,PowerShell也會表現出特殊的價值。

我想我會張貼這個(在它沒有真正回答你的問題的風險),以防它幫助別人找到真正的答案。我確信這將與該DirectorySeparatorChar字段有關。

+0

有沒有辦法僅將這個應用於單個Split-Path命令? (讓它返回斜槓而不是反斜槓。) – 2017-11-27 09:44:48

7

用「/」替換「\」。

PS C:\Users\dance2die> $path = "C:\Documents and Settings\Administrator" 
PS C:\Users\dance2die> $path.Replace("\", "/") 
C:/Documents and Settings/Administrator 
2

您可以創建一個過濾器(或功能),你可以管你的路徑:

PS C:\> filter replace-slash {$_ -replace "\\", "/"} 
PS C:\> Get-Location | replace-slash 
C:/