Как разбить строки в PowerShell?


83

Я [ совершенно не знаком с PowerShell и ] объединяю строку в цикл, если возникает особое условие, я должен вставить разрыв строки ... как я могу это сделать?

В основном ищу аналог \n.

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

Пока я пробовал

"\n" '\n' "\N" '\N' "\r" '\r' "\R" '\R' '`n' '`r' '-n' '-r' 

Ответы:


137

Попробуйте использовать "`n"двойные кавычки. ( не одинарные кавычки '`n')

Полный список экранирующих символов см.

Help about_Escape_character

Код должен быть

$str += "`n"

Спасибо, но не работает. это дает мнеThe term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322 09

1
Примеры Help about_Escape_characterпомогли мне разобраться в проблеме. Редактирование ответа, чтобы показать решение
user454322 09

Итак, чтобы разделить многострочную строку, используйте$filestobackup = $files.split("`n");
bgStack15, 01

9

Думаю, я нашел это. Все, что вам нужно сделать, это ввести «n» (С ЦИТАТЫМИ ЗНАКАМИ!)

Благодаря!


2

На всякий случай, если кто-то еще столкнется с этим, чтобы уточнить ответ, `n - серьезный акцент n, а не одиночная галочка n


4
На самом деле это «серьезный акцент». Тильда - это ~
elkirkmo

1
Спасибо за разъяснения.
SQLMac

Нет, ǹ - серьезный ударение n, а `n - обратная кавычка n. Не уверен, почему вы думаете иначе. Пожалуйста, разместите ссылку, если мне что-то не хватает.
Крис Броски 02

1

Вы также можете просто использовать:

Write-Host "";

Или, говоря языком вашего конкретного вопроса:

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += Write-Host ""
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

0

Если экранирование не работает, вы можете попробовать следующее:

$str += $("" | Out-String)

Он просто ничего не добавляет, кроме как Out-String, который создает новую строку.


0

Если вы используете только такой код, как этот ниже, вы должны сделать серьезный акцент в конце строки `.

docker run -d --name rabbitmq `
           -p 5672: 5672 '
           -p 15672: 15672`
           --restart = всегда `
           --hostname rabbitmq-master `
           -vc: \ docker \ rabbitmq \ data: / var / lib / rabbitmq `
           rabbitmq: последний
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.