Обратная косая черта в Powershell

#windows #powershell #quoting

#Windows #powershell #цитирование

Вопрос:

Почему строка для параметра -split требует двух обратных косых черт, в то время как строка для параметра -join требует только одной обратной косой черты? Обратная метка — это экранирующий символ в Powershell. Что для вас делает обратная косая черта, предшествующая символу?

 $path = 'C:foldertestunit1testingresultsreport.txt'

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

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

Ответ №1:

-split по умолчанию разбивается на регулярное выражение. Таким образом, регулярное выражение требует экранирования обратной косой черты. Вы можете указать PowerShell не использовать регулярное выражение следующим образом:

 $path -split '',-1,'SimpleMatch'
 

-join просто использует любые символы, которые вы предоставляете, для использования в качестве разделителя между соединяемыми строками.

Ответ №2:

-split принимает регулярное выражение, где обратная косая черта является специальным символом, поэтому его необходимо экранировать