[string] एकाधिक फ़ाइलों में स्ट्रिंग को कैसे खोजें और पावरहेल में फ़ाइलों के नाम वापस कैसे करें?


Answers

यहां कई प्रकार के सटीक उत्तर हैं, लेकिन यहां कई अलग-अलग विविधताओं के लिए सबसे संक्षिप्त कोड है। प्रत्येक भिन्नता के लिए, शीर्ष पंक्ति पूर्ण वाक्यविन्यास दिखाती है और नीचे terse वाक्यविन्यास दिखाता है।

मद (2) जॉन जेड और मैनोजल्ड के उत्तरों का एक संक्षिप्त संक्षिप्त रूप है, जबकि आइटम (1) विकस 368 और buygrush के उत्तरों के बराबर है।

  1. पैटर्न युक्त सभी फाइलों के लिए FileInfo ऑब्जेक्ट्स सूचीबद्ध करें:

    Get-ChildItem -Recurse filespec | Where-Object { Select-String pattern $_ -Quiet }
    ls -r filespec | ? { sls pattern $_ -q }
    
  2. पैटर्न वाली सभी फाइलों के लिए फ़ाइल नाम सूचीबद्ध करें:

    Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
    ls -r filespec | sls pattern | select -u Path
    
  3. सभी फाइलों के लिए FileInfo ऑब्जेक्ट्स को सूचीबद्ध करें जिसमें पैटर्न नहीं है :

    Get-ChildItem -Recurse filespec | Where-Object { !(Select-String pattern $_ -Quiet) }
    ls -r filespec | ? { !(sls pattern $_ -q) }
    
  4. सभी फाइलों के लिए फ़ाइल नाम सूचीबद्ध करें जिसमें पैटर्न नहीं है :

    (Get-ChildItem -Recurse filespec | Where-Object { !(Select-String pattern $_ -Quiet) }).FullName
    (ls -r filespec | ? { !(sls pattern $_ -q) }).FullName
    
Question

मैंने कुछ दिन पहले पावरहेल सीखना शुरू कर दिया है, और मुझे Google पर कुछ भी नहीं मिला जो मुझे चाहिए, इसलिए कृपया मेरे प्रश्न के साथ भालू।

मुझे कुछ टेक्स्ट स्ट्रिंग्स को विंडोज़ पर चलने वाले जेबॉस एप्लिकेशन में बदलने के लिए कहा गया है। मुझे जरूरी संभावित लक्ष्य फ़ाइलों का विस्तार नहीं पता है और मुझे उनके स्थान को भी नहीं पता है। अब तक मैंने निर्देशिका में पुनः get-ChildItem -recurse करने में कामयाब रहा है ( get-ChildItem -recurse ) और स्ट्रिंग को ढूंढें जिसे मैं ढूंढ-सामग्री और चयन-स्ट्रिंग के साथ ढूंढ रहा था:

Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy"

समस्या यह है कि, मैं जिस पाठ को ढूंढ रहा हूं, उसके अवसरों को देख सकता हूं, लेकिन मुझे नहीं पता कि पीएस को पथ और प्रत्येक मेल खाने वाली फाइलों के नाम को वापस करने के लिए कैसे कहा जाए।

मैं उन फ़ाइलों का नाम और स्थान कैसे प्राप्त कर सकता हूं जिनमें अभिव्यक्ति है जिसे मैं ढूंढ रहा हूं?




Get-ChildItem -r | ? {$_.psiscontainer -eq $false} | ? {gc $_.pspath |select-string -pattern "dummy"}

यह आपको सभी फाइलों का पूरा विवरण देगा




यह पथ, फ़ाइल नाम और सामग्री लाइन को प्रदर्शित करेगा जो पैटर्न से मेल खाता है।

Get-ChildItem -Path d:\applications\*config -recurse |  Select-String -Pattern "dummy" 



यदि आप एक निर्देशिका में खोज करते हैं, तो आप इसे कर सकते हैं:

select-string -Path "c:\temp\*.*" -Pattern "result"  -List | select Path



Related