दिलचस्प पोस्ट
एक्सएमएल स्कीमा से जेसन स्कीमा उत्पन्न करें (एक्सएसडी) जावा इंटरफेस? वसा मॉडल, पतली व्यूमोडल्स और गूंगा दृश्य, सबसे अच्छा एमवीवीएम दृष्टिकोण? अनक्यूट टाइप एरर: fs.readFileSync एक फ़ंक्शन नहीं है UIPageViewController स्क्रॉल संक्रमण शैली के साथ गलत पृष्ठ पर नेविगेट करता है HTML कोड को <? Php?> में कैसे लिखा जाए आपके प्रमाणीकरण एजेंट से कोई कनेक्शन नहीं खोला जा सका 2 ऑब्जेक्ट की तुलना करना और विभिन्न मानों के साथ फ़ील्ड की एक सूची पुनर्प्राप्त करें आर में संख्याओं के लिए कोमा सेपरेटर? Node.js – एक निर्माता के रूप में मॉड्यूल। एक्सपोर्ट्स का उपयोग क्या एक सीएसएस वर्ग एक या अधिक अन्य वर्गों का उत्तराधिकारी हो सकता है? क्या CSS3 / Canvas का उपयोग करके वक्र / आर्क पाठ का एक तरीका है पाइटेस्ट: यदि कोई विफल हो गया है तो कक्षा में बाकी परीक्षण कैसे छोड़ें? जावा में एक स्ट्रिंग के रूप में मैं एक एचटीपी प्रतिक्रिया शरीर कैसे प्राप्त करूं? क्यों करता है <T> IReadOnlyList <T> को .NET 4.5 में लागू करता है?

एक निर्देशिका में फ़ाइलों के माध्यम से पावरशेल का उपयोग करके लूप

मैं निर्देशिका में सभी .log फाइलों को देखने के लिए निम्न कोड को कैसे बदल सकता हूँ और सिर्फ एक फ़ाइल नहीं?

मुझे सभी फाइलों के माध्यम से लूप की जरूरत है और उन सभी लाइनों को हटा दें जिनमें "step4" या "step9" शामिल नहीं है वर्तमान में यह एक नई फ़ाइल बनाएगा, लेकिन मुझे यकीन नहीं है कि यहां for each लूप के for each कैसे उपयोग किया जाए (नौसिखिया)।

वास्तविक फाइलें इस प्रकार हैं: 2013 09 03 00_01_29.log मैं आउटपुट फाइलों को या तो उन्हें अधिलेखित करने के लिए या "बाहर" के साथ जोड़ा समान नाम प्राप्त करना चाहता हूं

 $In = "C:\Users\gerhardl\Documents\My Received Files\Test_In.log" $Out = "C:\Users\gerhardl\Documents\My Received Files\Test_Out.log" $Files = "C:\Users\gerhardl\Documents\My Received Files\" Get-Content $In | Where-Object {$_ -match 'step4' -or $_ -match 'step9'} | ` Set-Content $Out 

Solutions Collecting From Web of "एक निर्देशिका में फ़ाइलों के माध्यम से पावरशेल का उपयोग करके लूप"

इसे एक प्रयास करें:

 Get-ChildItem "C:\Users\gerhardl\Documents\My Received Files" -Filter *.log | Foreach-Object { $content = Get-Content $_.FullName #filter and save content to the original file $content | Where-Object {$_ -match 'step[49]'} | Set-Content $_.FullName #filter and save content to a new file $content | Where-Object {$_ -match 'step[49]'} | Set-Content ($_.BaseName + '_out.log') } 

एक निर्देशिका की सामग्री प्राप्त करने के लिए जो आप उपयोग कर सकते हैं

 $files = Get-ChildItem "C:\Users\gerhardl\Documents\My Received Files\" 

फिर आप इस वैरिएबल पर लूप कर सकते हैं:

 for ($i=0; $i -lt $files.Count; $i++) { $outfile = $files[$i].FullName + "out" Get-Content $files[$i].FullName | Where-Object { !($_ -match 'step4' -or $_ -match 'step9') } | Set-Content $outfile } 

यदि आपको किसी विशेष प्रकार की फाइल के लिए लगातार एक निर्देशिका के अंदर लूप की आवश्यकता है, तो नीचे दिए गए आदेश का उपयोग करें, जो doc फ़ाइल प्रकार की सभी फाइलों को फ़िल्टर करता है

$fileNames = Get-ChildItem -Path $scriptPath -Recurse -Include *.doc

यदि आपको कई प्रकार के फ़िल्टरिंग करने की आवश्यकता है, तो नीचे दिए गए आदेश का उपयोग करें।

$fileNames = Get-ChildItem -Path $scriptPath -Recurse -Include *.doc,*.pdf

$fileNames चर नाम के रूप में कार्य करता है, जहां से आप लूप कर सकते हैं और अपने व्यावसायिक तर्क को लागू कर सकते हैं।

अन्य जवाब महान हैं, मैं बस जोड़ना चाहता हूँ … एक अलग दृष्टिकोण PowerShell में प्रयोग करने योग्य है: GNUWin32 उपयोगिताओं को स्थापित करें और लाइन देखने के लिए grep का उपयोग करें / आउटपुट को http://gnuwin32.sourceforge.net/ फ़ाइल में रीडायरेक्ट करें

यह हर बार नई फ़ाइल को ओवरराइट करता है:

 grep "step[49]" logIn.log > logOut.log 

यह लॉग आउटपुट को संलग्न करता है, अगर आप लॉग इन फ़ाइल को अधिलेखित करते हैं और डेटा को रखना चाहते हैं:

 grep "step[49]" logIn.log >> logOut.log 

नोट: वैश्विक रूप से GNUWin32 utils का उपयोग करने में सक्षम होने के लिए आपको बिन फ़ोल्डर को अपने सिस्टम पथ में जोड़ना होगा।