Cách ngắt dòng trong PowerShell?


82

Tôi [ hoàn toàn mới sử dụng PowerShell và ] nối một chuỗi trong một vòng lặp, nếu điều kiện đặc biệt xảy ra, tôi nên chèn một dấu ngắt dòng ... làm cách nào để thực hiện việc này?

Về cơ bản tìm kiếm tương đương với \n.

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

Cho đến nay tôi đã cố gắng

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

Câu trả lời:


134

Hãy thử "`n"với dấu ngoặc kép. ( không phải dấu ngoặc kép '`n')

Để có danh sách đầy đủ các ký tự thoát, hãy xem:

Help about_Escape_character

Mã phải là

$str += "`n"

Cảm ơn nhưng không hoạt động. nó mang lại cho tôiThe term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322

1
Các ví dụ trong Help about_Escape_characterđã giúp tôi tìm ra vấn đề. Chỉnh sửa câu trả lời để hiển thị các giải pháp
user454322

Vì vậy, để tách một chuỗi nhiều dòng, hãy sử dụng$filestobackup = $files.split("`n");
bgStack15


2

Đề phòng trường hợp người khác bắt gặp điều này, để làm rõ câu trả lời `n là trọng âm n, không phải dấu tích n


4
Nó thực sự là một "trọng âm". Một dấu ngã là ~
elkirkmo

1
Cảm ơn bạn đã làm rõ.
SQLMac

Không, ǹ là trọng âm n và `n là dấu gạch ngược n. Không chắc tại sao bạn lại nghĩ khác. Xin vui lòng đăng một tài liệu tham khảo nếu tôi thiếu một cái gì đó.
Chris Broski

1

Bạn cũng có thể chỉ cần sử dụng:

Write-Host "";

Hoặc, để nói về câu hỏi cụ thể của bạn:

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

0

Nếu thoát không hoạt động, bạn có thể thử cách này:

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

Nó chỉ không thêm gì, nhưng như một Out-String, tạo ra một dòng mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.