/ / Backslash in Powershell - windows, powershell, quoting

Backslash in Powershell - Windows, PowerShell, citando

Perché la stringa per il parametro -splitrichiedono due barre rovesciate mentre la stringa per il parametro -join richiede una sola barra rovesciata? Il backtick è il personaggio di escape in Powershell. Cosa fa per te una barra rovesciata che precede un personaggio?

$path = "C:foldertestunit1testingresultsreport.txt"

$path -split "\" -notlike "*test*" -join ""

http://powershell.com/cs/blogs/tips/archive/2014/06/17/fun-with-path-names.aspx

risposte:

9 per risposta № 1

-split si divide su una regex per impostazione predefinita. Quindi è la regex che richiede di sfuggire a una barra rovesciata. Puoi dire a PowerShell di non usare un regex in questo modo:

$path -split "",-1,"SimpleMatch"

-join sta semplicemente prendendo tutti i caratteri che fornisci da usare come delimitatore da incollare tra le stringhe che vengono unite.


1 per risposta № 2

-split accetta un'espressione regolare in cui la barra rovesciata è un carattere speciale, quindi deve essere evasa