तुम हमेशा उत्पादन एक exe तो (यहां तक कि cmd.exe से) की तरह एक फ़ाइल रीडायरेक्ट कर सकते हैं powershell स्क्रिप्ट चलाने के लिए कमांड लाइन से एक बैच स्क्रिप्ट का उपयोग कर रहा हूँ:
powershell c:\test.ps1 > c:\test.log
PowerShell के भीतर, आप भी दायर करने के लिए अलग-अलग आदेशों अनुप्रेषित कर सकते हैं लेकिन उन मामलों में आप शायद बजाय लॉग फ़ाइल को संलग्न इसे अधिलेखित करना चाहते जैसे:
$logFile = 'c:\temp\test.log'
"Executing script $($MyInvocation.MyCommand.Path)" > $logFile
foreach ($proc in Get-Process) {
$proc.Name >> $logFile
}
"Another log message here" >> $logFile
जैसा कि आप देख सकते हैं, स्क्रिप्ट के भीतर पुनर्निर्देशन करना थोड़ा दर्द है क्योंकि आपको फ़ाइल में बहुत सारे रीडायरेक्ट करना है। ओटीओएच, अगर आप केवल आउटपुट के हिस्से को फ़ाइल में रीडायरेक्ट करना चाहते हैं तो आपके पास इस तरह अधिक नियंत्रण है। स्क्रिप्ट निष्पादन के परिणामों को देखने वाले किसी के लिए कंसोल को आउटपुट जानकारी के लिए Write-Host
का उपयोग करने का एक और विकल्प है। ध्यान दें कि Write-Host
आउटपुट फ़ाइल पर रीडायरेक्ट नहीं किया जा सकता है।
यह एक उदाहरण cmd.exe
से मार डाला
C:\Temp>type test.ps1
$OFS = ', '
"Output from $($MyInvocation.MyCommand.Path). Args are: $args"
C:\Temp>powershell.exe -file test.ps1 1 2 a b > test.log
C:\Temp>type test.log
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.
Output from C:\Temp\test.ps1. Args are: 1, 2, a, b
स्रोत
2012-04-26 19:41:44
तो अगर मैं powershell स्क्रिप्ट को एक बहस चल रहा है, कर सकते हैं बस का उपयोग कर के बारे में मैं करें: शक्तियां c: \ test.ps1 c: \ log.log> c: \ test.log जहां log.log तर्क है? – ssn
हां, लेकिन '-फाइल' पैरामीटर का उपयोग करने का प्रयास करें उदा। 'powerhell -file c: \ test.ps1 c: \ log.log> c: \ test.log' –
यदि मैं बैच फ़ाइल में फ़ाइल पैरामीटर (या फ़ाइल के बिना) का उपयोग करने का प्रयास करता हूं तो मुझे निम्न पंक्ति को कमांड में निष्पादित किया जाता है लाइन: पावरहेल -फाइल सी: \ test.ps1 c: \ log.log 1> c: \ test.log मुझे नहीं पता कि "1" वहां कैसे आता है ..... और मुझे लगता है कि पूरा पाठ स्क्रिप्ट नाम इनपुट फ़ाइल नाम के रूप में लिया जाता है और इसलिए आउटपुट की अपेक्षा नहीं की जाती है। और यह व्यवहार वही है जो मैं "-फाइल" का उपयोग करता हूं या नहीं। – ssn