2015-11-07 2 views
1

У меня возникли проблемы при добавлении новой строки в строку в PowerShell:Powershell экранирующего символ `(кавычка) не избежать строк

Get-ChildItem "C:\Users\matt\Desktop\CShell Install" |foreach {'<Component Id="'+$_.name+'" Guid="' +[guid]::NewGuid() + '">`r`n<File Id="'+$_.name+'" Source="$(var.CShell.TargetPath)"></File></Component>'} 

Как вы можете видеть, что я хочу новую строка происходит при

`` r`n

вместо этого они печатаются буквально.

Любые указатели?

+0

Отказ от ответственности: Я не знаком с Powershell, но обычно это '\ r \ n'. – Kenney

+1

Строка одиночных кавычек имеет только одну действительную escape-последовательность '' '' (строго говоря, в PowerShell есть пять действительных символов одиночной кавычки, поэтому у вас есть 25 действительных escape-последовательностей), что-нибудь еще, включая обратную линию, интерпретируется буквально. – PetSerAl

+0

@PetSerAl - Не могли бы вы уточнить, двойные обратные ссылки также интерпретируются буквально. –

ответ

4

Не используйте Single Quote, где вы хотите, чтобы PowerShell соблюдал обратные записи (или любые другие символы, которые вам нужны PowerShell для интерпретации).

"FirstLine`r`nSecondLine" prints 
FirstLine 
SecondLine 

'"FirstLine`r`nSecondLine"' prints 
"FirstLine`r`nSecondLine" 
+0

Это был трюк, не забывая также избегать двойных кавычек, которые я хотел в буквальном смысле слова. Благодарю. –

 Смежные вопросы

  • Нет связанных вопросов^_^