Write-Host और PowerShell में Write-Output के बीच क्या अंतर है?लिखने-होस्ट और लिखने-आउटपुट के बीच पावरशेल अंतर?
की तरह ...
Write-Host "Hello World ";
Write-Output "Hello World";
Write-Host और PowerShell में Write-Output के बीच क्या अंतर है?लिखने-होस्ट और लिखने-आउटपुट के बीच पावरशेल अंतर?
की तरह ...
Write-Host "Hello World ";
Write-Output "Hello World";
संक्षेप में, Write-Host
कंसोल में ही लिखते हैं। VBScript में इसे एक संदेश बॉक्स के रूप में सोचें। दूसरी ओर, Write-Output
, पाइपलाइन को लिखता है, इसलिए अगला आदेश इसे अपने इनपुट के रूप में स्वीकार कर सकता है। आप क्रम में Write-Output
उपयोग करने के लिए, वस्तुओं लिखने के रूप में Write-Output
परोक्ष आप के लिए कहा जाता है की आवश्यकता नहीं है।
PS> Get-Service
होगा एक ही रूप में:
PS> Get-Service | Write-Output
Write-Output
पाइप लाइन के माध्यम एक वस्तु के रूप डेटा भेजता है। प्रश्न उदाहरण में यह केवल एक स्ट्रिंग पास करेगा।
write-host
निर्भर की मेजबानी है। कंसोल में write-host
अनिवार्य रूप से [console]::WriteLine
कर रहा है। अधिक जानकारी के लिए this देखें।
लिखें-आउटपुट पाइप लाइन के लिए आउटपुट भेजता है। वहां से इसे किसी अन्य 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 पाइप लाइन के लिए उत्पादन के साथ क्या करना है नहीं बताया है, तो यह करने के लिए भेजा जाता है आउट-डिफॉल्ट, जो आमतौर पर कंसोल होता है, इसलिए अंतिम परिणाम समान दिखाई देता है।
राइट-होस्ट और लिखें-आउटपुट बीच एक और अंतर:
लिखें मेजबान स्क्रीन पर संदेश प्रदर्शित करता है, लेकिन यह करने के लिए लॉग इसे लिखने नहीं है
लिखें-आउटपुट राईट लॉग के लिए एक संदेश, लेकिन यह स्क्रीन पर प्रदर्शित नहीं करता है।
और लिखें-होस्ट को हानिकारक माना जाता है। आप Write-Host Considered Harmful में एक विस्तृत विवरण देख सकते हैं।
मुझे लिखें-आउटपुट अधिक हानिकारक लगता है। आप कैसे सुनिश्चित कर रहे हैं कि एक फ़ंक्शन वास्तव में आपके अपेक्षित परिणाम देता है और कमांड से कुछ अप्रत्याशित कचरा आउटपुट नहीं करता है? – MKesper
बस भविष्य पाठकों के लिए स्पष्ट करने के लिए। 'लिखें-ओपुत' वस्तुओं को भेजता है। इस बार यह एक स्ट्रिंग था, लेकिन सामान्य रूप से यह ऑब्जेक्ट्स भेज देगा, और आमतौर पर उपयोग करने के लिए अनावश्यक है क्योंकि यह परिणाम/डेटा आउटपुट करने का डिफ़ॉल्ट तरीका है :) –
अच्छा बिंदु। मैंने अपना जवाब अपडेट किया। धन्यवाद –