मौजूदा जवाब में अच्छी जानकारी नहीं है, लेकिन जाने मुझे एक व्यावहारिक सारांश का प्रयास:
सांत्वना या एक फ़ाइल पर रीडायरेक्ट Write-Output
एक से अलग करती है कई तर्कों को मुद्रण जब प्रत्येक की नई लाइन।
इसलिए, एकल लाइन उत्पादन का उत्पादन करने के लिए , आप एक एकल स्ट्रिंग है कि आप एक एकल तर्क के रूप में पारित में "पूर्व इकट्ठा" चाहिए उत्पादन के लिए भागों।
संग्रह, आप आम तौर पर स्पष्ट रूप से Write-Output
उपयोग करने के लिए की जरूरत नहीं है की गणना को दबाने के लिए छोड़कर, क्योंकि PowerShell डिफ़ॉल्ट से कुछ भी है कि एक चर में कब्जा नहीं कर रहा है या कहीं और पुनः निर्देशित या करने के लिए पाइप लाइन के माध्यम से भेजा भेजता है [सफलता] आउटपुट स्ट्रीम (जो Write-Output
भी लिखता है); इस प्रकार, हाथ में मामले में, निम्नलिखित के लिए पर्याप्त है:
"Server: $a" # what this expandable string expands to is *implicitly* output
क्या भ्रमित किया जा सकता है कि Write-Host
cmdlet अलग तरह से काम करता है है, लेकिन यह यह है कि ध्यान देना महत्वपूर्ण है अलग-अलग उद्देश्य।
# IMPORTANT: Do not use Write-Host to output *data*; only use it to write
# directly to the host (console).
> Write-Host "Server:" $a # multiple spaces used on purpose
Server: srv1
Write-Host
, Write-Output
के विपरीत, एक सिंगल स्पेस प्रत्येक द्वारा कई तर्क अलग करती है।
अन्य महत्वपूर्ण अंतर हैं, जिनका सारांश this answer में मेरा सारांश है।
प्रश्न के जेनेरिक शीर्षक को देखते हुए, यह भी को संबोधित एक न्यू लाइन अनुगामी को दबाने के लिए कैसे करते हैं:
'राईट-आउटपुट" सर्वर: $ एक "' –
@empo: आप एक जवाब के रूप में इस प्रस्तुत करना चाहिए। मेरी राय में, यह अभी तक एकमात्र उत्तर से अधिक प्रत्यक्ष और प्रासंगिक है। –