2012-08-09 22 views
40

मैं [पावरशेल और पर पूरी तरह से नया हूं] एक लूप में स्ट्रिंग को संयोजित करना, यदि कोई विशेष स्थिति होती है तो मुझे लाइन ब्रेक डालना चाहिए ... मैं यह कैसे कर सकता हूं?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' 

उत्तर

74

प्रयास करें `n (नहीं'`n')

पात्रों से बचने का एक पूरी सूची के लिए देखें:

Help about_Escape_character

कोड

$str += "`n" 
+0

धन्यवाद लेकिन काम नहीं करता। यह मुझे ' ' शब्द को cmdlet, function, sc के नाम के रूप में पहचाना नहीं गया है .... ' – user454322

+1

'सहायता about_Escape_character' के उदाहरणों में मुझे समस्या का पता लगाने में मदद मिली। समाधान – user454322

+0

दिखाने के लिए उत्तर संपादित करना एक मल्टीलाइन स्ट्रिंग को विभाजित करने के लिए, '$ filestobackup = $ files.split (" \ 'n") का उपयोग करें; ' – bgStack15

8

मुझे लगता है कि मैंने इसे पाया है। आपको बस इतना करना है कि "` n "(उद्धरण चिह्नों के साथ!)

धन्यवाद!

0

शायद ज़रुरत पड़े तो किसी और से बचने के काम नहीं करता है यह भर आता है, इस सवाल का जवाब स्पष्ट करने के लिए `n कब्र लहजे एन, नहीं एकल टिक n

+3

यह वास्तव में एक" गंभीर उच्चारण "है। एक tilde ~ – elkirkmo

+0

स्पष्टीकरण के लिए धन्यवाद है। – SQLMac

0

है, तो आप इस कोशिश कर सकते हैं:

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

यह कुछ भी नहीं जोड़ता है, लेकिन Out-String के रूप में, जो एक नई लाइन बनाता है।

0

आप, साथ ही उपयोग कर सकते हैं:

Write-Host ""; 

या, अपने विशिष्ट प्रश्न के संदर्भ में यह डाल करने के लिए:

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