मुझे Write-Host "Server1"
जैसे कुछ आदेशों के साथ एक स्क्रिप्ट मिली है। मैं इसे फाइल में कैसे निर्यात कर सकता हूं?लिखें-होस्ट => फ़ाइल में निर्यात करें
जब मैंने script > export.txt
के साथ प्रयास किया तो यह काम नहीं करता है।
मुझे Write-Host "Server1"
जैसे कुछ आदेशों के साथ एक स्क्रिप्ट मिली है। मैं इसे फाइल में कैसे निर्यात कर सकता हूं?लिखें-होस्ट => फ़ाइल में निर्यात करें
जब मैंने script > export.txt
के साथ प्रयास किया तो यह काम नहीं करता है।
Write-host
आउटपुट को केवल कंसोल पर रीडायरेक्ट करें।
आप write-output
का उपयोग करें और एक फ़ाइल को अनुप्रेषित (> export.txt
या out-file export.txt
को पाइप)
चरम मामले जब आप पूरी तरह से एक स्क्रिप्ट से सभी उत्पादन अनुप्रेषित इस cmdlet
start-transcript
get-help start-transcript -full
पावरशेल script > export.txt
script | Out-File -path export.txt
के लिए वाक्य रचनात्मक चीनी है।
लिखें-होस्ट ऑब्जेक्ट को होस्ट भेजता है, और यह किसी ऑब्जेक्ट को वापस नहीं करता है। इसका मतलब है कि आउट-फाइल cmdlet में कोई ऑब्जेक्ट पाइप नहीं किया गया है और export.txt फ़ाइल में कुछ भी नहीं लिखा गया है। एक वर्कअराउंड (यदि आप अपनी स्क्रिप्ट को बदलना नहीं चाहते हैं) cmd
कंसोल खोलना है और cmd कंसोल रीडायरेक्शन का उपयोग कर PowerShell आउटपुट को रीडायरेक्ट करना है।
C:\> powershell .\script.ps1 > .\export.txt
मैं बताने के लिए किसी Exchange आदेश जो है है कि वहाँ भूल गया , फ़ंक्शन, ऑपरेट करने योग्य प्रोग्राम, या स्क्रिप्ट फ़ाइल। शब्द सत्यापित करें और पुनः प्रयास करें। धन्यवाद – expirat001
अपनी स्क्रिप्ट की शुरुआत में अपने एक्सचेंज रिमोट रनस्पेस कॉन्फ़िगरेशन से कनेक्ट करने का प्रयास करें। '$ सत्र = नया-PSSession -ConfigurationName माइक्रोसॉफ्ट। एक्सचेंज -कनेक्शनउरी http: // $ computername/powerhell; आयात-पिसेशन $ सत्र'। यदि आपको ऐसा करने में समस्याएं हैं, तो एक नया प्रश्न खोलने पर विचार करें क्योंकि यह समस्या प्रारंभिक समस्या से संबंधित नहीं है। –
अलग दृष्टिकोण की उपयोगिता काफी हद तक आपके उपयोग के मामले के आधार पर किया जाना है, "सही" तरीका यह है जा रहा है निश्चित रूप से, लेकिन ...
, मेरा मानना है, तो आप नियंत्रण है, तो स्क्रिप्ट्स (और यह वही है जो मैं आमतौर पर करता हूं, हालांकि स्वीकार्य रूप से मैं आज शॉर्टकट ढूंढ रहा था), "अधिभार" Write-Host
, तो बोलने के लिए, और फिर Write-Host
पर जो कुछ भी भेजा गया है उसे भेजें नया समारोह
वैध पावरशेल क्रियाओं के साथ रहने के लिए, मैं अपना Write-Feedback
पर कॉल करता हूं।
function Write-Feedback()
{
param
(
[Parameter(Position=0,ValueFromPipeline=$true)]
[string]$msg,
[string]$BackgroundColor = "Yellow",
[string]$ForegroundColor = "Black"
)
Write-Host -BackgroundColor $BackgroundColor -ForegroundColor $ForegroundColor $msg;
}
तो अब आप एक समारोह है कि अनिवार्य रूप से Write-Host
के समान संचालित है, लेकिन आप आसानी से जहां उत्पादन हो जाता है नियंत्रित कर सकते हैं। यदि आपको किसी फ़ाइल में लिखने की आवश्यकता है, तो आप Write-Feedback
संपादित कर सकते हैं ताकि इसकी सभी कॉल अब जो भी हो, कर सकें।
आप बस लाइन Write-Output
के लिए, आप पाइपलाइन नीचे कुछ और कर रहे हैं के आधार पर बदल सकता है ...
...
Write-Output $msg;
आप एक ही फाइल है कि आप पाइप रहे हैं करने के लिए उत्पादन भेज सकता है करने के लिए आदेश के बाकी है, लेकिन Write-Feedback
समारोह के भीतर, यहां तक कि राइट-होस्ट भी ध्यान में रखते हुए:
function Write-Feedback()
{
param
(
[Parameter(Position=0,ValueFromPipeline=$true)]
[string]$msg,
[string]$BackgroundColor = "Yellow",
[string]$ForegroundColor = "Black"
)
Write-Host -BackgroundColor $BackgroundColor -ForegroundColor $ForegroundColor $msg;
$msg | Out-File "./export.txt" -Append; # <<< or add a param to location
}
या यदि आप कुछ बाहरी कारकों जहां Write-Feedback
सामग्री को एक फ़ाइल में पहुंचाया जा नहीं करना चाहती है, आप एक नया ओ जोड़ सकते हैं पेंशनल पैरामीटर जो पूछता है कि प्रत्येक विशिष्ट Write-Feedback
के साथ क्या करना है, आपको switch
से कॉल करें और Write-Host
पर Write-Output
, आदि पर फ़ाइल को भेजें - डिफ़ॉल्ट रूप से जो आप चाहते हैं उसे बदलना, और स्पष्ट रूप से switch
नए से बंद करना पैरामीटर जहां यह स्पष्ट रूप से सेट है।
आदि, आदिPowerShell में आउटपुट के लिए केंद्रीकृत क्लीयरिंगहाउस में आपकी सभी कॉलों को रूट करना बहुत आसान है। फिर जब आप अपना मन बदलते हैं, तो यह एक बड़ी खोज और प्रतिस्थापन नहीं है - और वापस - कार्य को प्रतिस्थापित करें।
मुझे लगता है कि केवल दर्द यहाँ अगर आप, पाइप लाइन नीचे बातें भेजने के लिए नहीं करना चाहता था इसलिए Write-Output
बाहर है होगा, लेकिन यह सुनिश्चित करने के फ़ाइल Write-Feedback
को पत्र लिखा है कि तुम क्या में निर्दिष्ट किया है के रूप में ही था चाहता था > export.txt
आपके उदाहरण से प्रत्येक बार Write-Feedback
संपादित किए बिना। मुझे यकीन नहीं है कि ऐसा करने का कोई आसान तरीका है या नहीं।
लेकिन चूंकि आप पहले से ही अपने "पाइप चरण" से एक कदम हटा दिए जाएंगे, शायद यह वैध उपयोग केस नहीं है।
वैसे भी, नीचे की रेखा Write-Host
अधिभारित करना है और जो भी आप एक स्थान पर संपादित करके करना चाहते हैं।
इसके बारे में कोई अंतिम समाधान? Get-MailboxServer C:।। \> Powershell \ script.ps1> \ export.txt अवधि 'गेट-MailboxServer' एक cmdlet के रूप में मान्यता प्राप्त नहीं है – Kiquenet