2012-08-09 70 views
40

Tôi [hoàn toàn mới để PowerShell và] ghép nối 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 ngắt dòng ... làm cách nào tôi có thể thực hiện việc này?Làm cách nào để ngắt dòng trong PowerShell?

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' 

Trả lời

74

Hãy thử `n (không'`n')

Đối với một danh sách đầy đủ của các nhân vật thoát xem:

Help about_Escape_character

Mã phải là

$str += "`n" 
+0

Cảm ơn, nhưng không hoạt động. nó cung cấp cho tôi 'Thuật ngữ ' ' không được công nhận là tên của lệnh ghép ngắn, hàm, sc ....' – user454322

+1

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

+0

Vì vậy, để chia chuỗi nhiều dòng, hãy sử dụng '$ filestobackup = $ files.split (" \ 'n"); " – bgStack15

8

Tôi nghĩ mình đã tìm thấy nó. Tất cả những gì bạn phải làm là nhập vào "` n "(VỚI CÁC ĐÁNH GIÁ CHẤT LƯỢNG!)

Cảm ơn!

0

Chỉ trong trường hợp ai đó đi ngang qua đây, để làm rõ câu trả lời `n là n dấu huyền, không đơn đánh dấu n

+3

Nó thực sự là" dấu nhấn ". Dấu ngã là ~ – elkirkmo

+0

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

0

Nếu thoát không làm việc, bạn có thể thử này:

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

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

0

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

Write-Host ""; 

Hoặc, để đặt nó trong điều kiện của 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..... 
} 
Các vấn đề liên quan