2009-04-23 9 views
12

E 'possibile ottenere PowerShell per sempre uscita / invece di \? Ad esempio, mi piacerebbe che l'output di get-location fosse C:/Documents and Settings/Administrator.Variazione separatore di percorso in Windows PowerShell

Aggiorna

Grazie per gli esempi di utilizzo di sostituire, ma speravo in questo avvenga globalmente (completamento scheda per esempio, ecc). Sulla base di osservazione di Matt che il separatore è definito da System.IO.Path.DirectorySeparatorChar che appare nella pratica e dalla documentazione ad essere di sola lettura, Sto indovinando questo non è possibile.

risposta

6

E 'una buona domanda. Il framework .NET sottostante superfici questo come System.IO.Path.DirectorySeparatorChar, ed è un/proprietà di lettura e scrittura, così ho pensato che si potrebbe fare questo:

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

... e che sembra avere successo, a meno che quindi scrivi:

[IO.Path]::DirectorySeparatorChar 

... ti dice che è ancora '\'. È come se non stesse "prendendo piede". Diamine, non sono nemmeno sicuro che PowerShell onori quel particolare valore anche se stava cambiando.

ho pensato di postare questo (con il rischio di non realmente rispondere alla tua domanda) nel caso in cui aiuta a qualcun altro trovare la vera risposta. Sono sicuro che sarebbe qualcosa a che fare con quel campo DirectorySeparatorChar.

+0

C'è un modo per applicare questo solo per un singolo comando Split-Path? (Rendendolo restituisce la barra anziché il backslash.) –

7

sostituire "\" con "/".

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

Si potrebbe creare un filtro (o funzione) che è possibile reindirizzare i percorsi a:

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