2009-04-23 119 views
12

Có thể lấy PowerShell luôn xuất / thay vì \? Ví dụ, tôi muốn đầu ra của get-location là C:/Documents and Settings/Administrator.Thay đổi dấu phân cách đường dẫn trong Windows PowerShell

Cập nhật

Cám ơn các ví dụ của việc sử dụng thay thế, nhưng tôi đã hy vọng cho điều này xảy ra trên toàn cầu (ví dụ hoàn tab, vv). Dựa trên quan sát của Matt rằng dấu phân cách được xác định bởi System.IO.Path.DirectorySeparatorChar xuất hiện trong thực tế và từ tài liệu chỉ đọc, tôi đoán điều này là không thể.

Trả lời

6

Đó là một câu hỏi hay. .NET framework bên dưới bề mặt này như System.IO.Path.DirectorySeparatorChar, và đó là một đọc/viết tài sản, vì vậy tôi figured bạn có thể làm điều này:

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

... và điều đó dường như thành công, trừ khi sau đó bạn nhập thông tin này:

[IO.Path]::DirectorySeparatorChar 

... nó cho bạn biết rằng vẫn còn '\'. Nó giống như nó không "giữ lấy". Heck, tôi thậm chí không chắc chắn rằng PowerShell tôn vinh giá trị cụ thể ngay cả khi nó đang thay đổi.

Tôi nghĩ rằng tôi muốn đăng bài này (với nguy cơ nó không thực sự trả lời câu hỏi của bạn) trong trường hợp nó giúp người khác tìm thấy câu trả lời thực sự. Tôi chắc chắn nó sẽ là một cái gì đó để làm với lĩnh vực DirectorySeparatorChar.

+0

Có cách nào để áp dụng điều này chỉ cho một lệnh Split-Path không? (Làm cho nó trở lại dấu gạch chéo thay vì dấu gạch chéo ngược.) –

7

Thay thế "\" bằng "/".

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

Bạn có thể tạo một bộ lọc (hoặc chức năng) mà bạn có thể đường ống đường dẫn của bạn để:

PS C:\> filter replace-slash {$_ -replace "\\", "/"} 
PS C:\> Get-Location | replace-slash 
C:/ 
Các vấn đề liên quan