स्क्रिप्ट परीक्षण के लिए PowerShell में बराबर इको





(9)


गूंज Write-Output लिए उपनाम है हालांकि यह Write-Host के समान दिखता है।

यह नहीं है PowerShell में गूंज और लिखें-होस्ट के बीच क्या अंतर है?

गूंज लेखन-आउटपुट के लिए उपनाम है, जो सफलता आउटपुट स्ट्रीम को लिखता है। यह आउटपुट को पाइपलाइनों के माध्यम से संसाधित करने या फ़ाइलों में पुनर्निर्देशित करने की अनुमति देता है। लिखें-होस्ट सीधे कंसोल पर लिखता है, इसलिए आउटपुट को किसी भी आगे रीडायरेक्ट / संसाधित नहीं किया जा सकता है।

मैं फ्लैग सेट अप करके और स्क्रिप्ट में डेटा मैट्रिकुलेट को देखकर PowerShell स्क्रिप्ट में चर और मान आउटपुट करना चाहता हूं।

यह मैं कैसे करूंगा?

उदाहरण के लिए, निम्न PHP कोड के बराबर PowerShell क्या होगा?

echo "filesizecounter: " . $filesizecounter 



पावरहेल में लिखित Write-Output लिए उपनाम मैपिंग गूंज है, इसलिए:

echo "filesizecounter : $filesizecounter"




Get-Content .\yourScript.PS1 प्रयास Get-Content .\yourScript.PS1 और आप अपनी स्क्रिप्ट की सामग्री देखेंगे।

आप इस लाइन को अपने स्क्रिप कोड में भी डाल सकते हैं:

get-content .\scriptname.PS1
script code
script code

....




कई तरीके हैं:

Write-Host : सीधे कंसोल पर लिखें, फ़ंक्शन / cmdlet आउटपुट में शामिल नहीं है। अग्रभूमि और पृष्ठभूमि रंग सेट करने की अनुमति देता है।

Write-Debug : कंसोल पर सीधे लिखें, अगर $DebugPreference जारी रखने या रोकने के लिए सेट है।

Write-Verbose : कंसोल पर सीधे लिखें, अगर $VerbosePreference जारी रखने या रोकने के लिए सेट है।

उत्तरार्द्ध अतिरिक्त वैकल्पिक जानकारी के लिए है, डिबगिंग के लिए Write-Debug (इसलिए इस मामले में फिट होना प्रतीत होता है)।

अतिरिक्त : पीएमएच 2 (कम से कम) स्क्रिप्ट्स में cmdlet बाइंडिंग का उपयोग करके स्वचालित रूप से -Verbose और -Debug स्विच पैरामीटर प्राप्त होते हैं, स्थानीय रूप से -Debug Write-Verbose और -Debug Write-Debug (यानी वरीयता चर को ओवरराइड करना) सक्षम करते हैं क्योंकि संकलित cmdlets और प्रदाता करते हैं।




पावरहेल में गूंजने का सबसे आसान तरीका अब तक स्ट्रिंग ऑब्जेक्ट बना रहा है और पाइपलाइन को आउटपुट करने दें:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

बेशक, लिखें- * विधियों का उपयोग न करने पर आप कुछ लचीलापन छोड़ देते हैं।




लिखित होस्ट ठीक काम करता है।

$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";



Write-Host "filesizecounter : " $filesizecounter 



पावरशेल इंटरपोलेट करता है, है ना?

PHP में

echo "filesizecounter: " . $filesizecounter 

इसके रूप में भी लिखा जा सकता है:

echo "filesizecounter: $filesizecounter" 

PowerShell में ऐसा कुछ आपकी आवश्यकताओं के अनुरूप होना चाहिए:

Write-Host "filesizecounter: $filesizecounter"



# Json to object
$obj = $obj | ConvertFrom-Json
Write-host $obj.PropertyName




powershell