करने के लिए पूरकbriantist's helpful answer फिर -NoNewline
:
निम्नलिखित सिर्फ Out-File
के लिए नहीं लागू होता है, लेकिन तुलनात्मक रूप से करने के लिए Set-Content
/Add-Content
रूप में अच्छी तरह; जैसा कि कहा गया है, -NoNewline
को पीएसवी 5 + की आवश्यकता है।
नोट -NoNewline
इसका मतलब है कि कई उत्पादन करने के लिए वस्तुओं के साथ, यह न सिर्फ एक अनुगामी न्यू लाइन (लाइन ब्रेक) किसी भी नई-पंक्तियों है कि दबा दिया जाता है, लेकिन ।
दूसरे शब्दों में: इनपुट ऑब्जेक्ट्स के स्ट्रिंग प्रस्तुतियों को सीधे विभाजित किया जाता है, बिना विभाजक (टर्मिनेटर)।
इसलिए, निम्न कमांड एक ही फाइल सामग्री (TestTest
एक अनुगामी न्यू लाइन के बिना) में परिणाम:
# Single input string
"TestTest" | Out-File -encoding ascii test.txt -NoNewline
# Equivalent command: 2-element array of strings that are directly concatenated.
"Test", "Test" | Out-File -encoding ascii test.txt -NoNewline
आदेश में के लिए जगह नई-पंक्तियों के बीच केवल , लेकिन नहीं भी के बाद उत्पादन ऑब्जेक्ट्स, आपको स्पष्ट रूप से:
"Test", "Test" -join "`r`n" | Out-File -encoding ascii test.txt -NoNewline
के साथ ऑब्जेक्ट्स में शामिल होना चाहिएयूनिक्स-शैली एलएफ-केवल न्यूलाइन बनाने के लिए, "`r`n"
के बजाय "`n"
का उपयोग करें।
चेतावनी:
ऊपर -join
समाधान परोक्ष इनपुट तार करने के लिए वस्तुओं, यदि पहले से नहीं कर रहे हैं धर्मान्तरित और प्रत्येक वस्तु है, जो अक्सर एक अलग पैदावार पर नेट .ToString()
विधि को फोन करके ऐसा नहीं करता है Out-File
की तुलना में प्रतिनिधित्व सीधे बनाएगा, क्योंकि Out-File
पावरशेल के डिफ़ॉल्ट आउटपुट फॉर्मेटर का उपयोग करता है; उदाहरण के लिए, (Get-Date).ToString()
के आउटपुट की तुलना करें और केवल Get-Date
।
अपने इनपुट केवल तार और/या गैर तार जिसका .ToString()
प्रतिनिधित्व संतोषजनक है, इसके बाद के संस्करण समाधान काम करता है, लेकिन ध्यान दें कि यह तो है आम तौर पर Set-Content
cmdlet, एक ही stringification लागू होता है जो उपयोग को प्राथमिकता दी शामिल हैं परोक्ष।
Out-File
और Set-Content
के बीच अंतरों की पूरी चर्चा के लिए, मेरे this answer देखें।
यदि आपके इनपुट में गैर स्ट्रिंग्स हैं जिन्हें आप कंसोल पर प्रिंट करते समय प्रारूपित करना चाहते हैं, तो वास्तव में कोई आसान समाधान नहीं है: जबकि आप Out-String
का उपयोग डिफ़ॉल्ट फॉर्मेटर के साथ प्रति-ऑब्जेक्ट स्ट्रिंग प्रस्तुतियों को बनाने के लिए कर सकते हैं, Out-String
की -NoNewline
की कमी (v5.1; this GitHub issue के अनुसार इसे पेश करने का सुझाव दिया गया है) हमेशा नई रेखाएं उत्पन्न करेगा।
यह एक महत्वपूर्ण बात है! – briantist