2013-11-03 5 views

उत्तर

23

संक्षेप में, Write-Host कंसोल में ही लिखते हैं। VBScript में इसे एक संदेश बॉक्स के रूप में सोचें। दूसरी ओर, Write-Output, पाइपलाइन को लिखता है, इसलिए अगला आदेश इसे अपने इनपुट के रूप में स्वीकार कर सकता है। आप क्रम में Write-Output उपयोग करने के लिए, वस्तुओं लिखने के रूप में Write-Output परोक्ष आप के लिए कहा जाता है की आवश्यकता नहीं है।

PS> Get-Service 

होगा एक ही रूप में:

PS> Get-Service | Write-Output 
4

Write-Output पाइप लाइन के माध्यम एक वस्तु के रूप डेटा भेजता है। प्रश्न उदाहरण में यह केवल एक स्ट्रिंग पास करेगा।

write-host निर्भर की मेजबानी है। कंसोल में write-host अनिवार्य रूप से [console]::WriteLine कर रहा है। अधिक जानकारी के लिए this देखें।

+2

बस भविष्य पाठकों के लिए स्पष्ट करने के लिए। 'लिखें-ओपुत' वस्तुओं को भेजता है। इस बार यह एक स्ट्रिंग था, लेकिन सामान्य रूप से यह ऑब्जेक्ट्स भेज देगा, और आमतौर पर उपयोग करने के लिए अनावश्यक है क्योंकि यह परिणाम/डेटा आउटपुट करने का डिफ़ॉल्ट तरीका है :) –

+0

अच्छा बिंदु। मैंने अपना जवाब अपडेट किया। धन्यवाद –

7

लिखें-आउटपुट पाइप लाइन के लिए आउटपुट भेजता है। वहां से इसे किसी अन्य cmdlet पर पाइप किया जा सकता है या एक चर के लिए असाइन किया जा सकता है। लिखें-होस्ट इसे सीधे कंसोल पर भेजता है।

$a = 'Testing Write-OutPut' | Write-Output 
$b = 'Testing Write-Host' | Write-Host 

Get-Variable a,b 

आउटपुट:

Testing Write-Host 

Name       Value                 
----       -----                 
a        Testing Write-OutPut             
b             

आप एक चर करने के लिए यह बताए या anoher आदेश के लिए यह पाइप द्वारा Powershell पाइप लाइन के लिए उत्पादन के साथ क्या करना है नहीं बताया है, तो यह करने के लिए भेजा जाता है आउट-डिफॉल्ट, जो आमतौर पर कंसोल होता है, इसलिए अंतिम परिणाम समान दिखाई देता है।

3

राइट-होस्ट और लिखें-आउटपुट बीच एक और अंतर:

  • लिखें मेजबान स्क्रीन पर संदेश प्रदर्शित करता है, लेकिन यह करने के लिए लॉग इसे लिखने नहीं है

  • लिखें-आउटपुट राईट लॉग के लिए एक संदेश, लेकिन यह स्क्रीन पर प्रदर्शित नहीं करता है।

और लिखें-होस्ट को हानिकारक माना जाता है। आप Write-Host Considered Harmful में एक विस्तृत विवरण देख सकते हैं।

+0

मुझे लिखें-आउटपुट अधिक हानिकारक लगता है। आप कैसे सुनिश्चित कर रहे हैं कि एक फ़ंक्शन वास्तव में आपके अपेक्षित परिणाम देता है और कमांड से कुछ अप्रत्याशित कचरा आउटपुट नहीं करता है? – MKesper

संबंधित मुद्दे