#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 принимает регулярное выражение, где обратная косая черта является специальным символом, поэтому его необходимо экранировать