How to search a string in multiple files and return the names of files in Powershell?How to code, which look for a certain phrase/text in the folder by POWERSHELLRecursively find text in files (PowerShell)How to search a string in multiple files and return file name with line number/text in an Excel or csv in PowershellPacking and publishing NuGet packages with .NET CLI in TeamCityHow to search a string in multiple files and return all file information (like `dir`) in powershell?Find Python files according to their contentHow to check if a string contains a substring in BashHow do I iterate over the words of a string?How do I read / convert an InputStream into a String in Java?How to substring a string in Python?How do I make the first letter of a string uppercase in JavaScript?How to replace all occurrences of a string?How to check whether a string contains a substring in JavaScript?How do I check if a string contains a specific word?How do I convert a String to an int in Java?How do I find all files containing specific text on Linux?

What happens if you just start drawing from the Deck of Many Things without declaring any number of cards?

Understanding GFCI configuration in basement

Correct way of simplifying the result of an integral

Pandas transform inconsistent behavior for list

Killing task by name - start menu shortcut

"Practice makes perfect" and "c'est en forgeant qu'on devient forgeron"

How were US credit cards verified in-store in the 1980's?

Divide Numbers by 0

Am I required to correct my opponent's assumptions about my morph creatures?

Why didn't Thatcher give Hong Kong to Taiwan?

How can I portray a character with no fear of death, without them sounding utterly bored?

Does a Rogue's proficiency with a Rapier apply to the Spiral Rapier?

Colored grid with coordinates on all sides?

Was there an original & definitive use of alternate dimensions/realities in fiction?

Would someone mind just getting me started with my Russian homework?

Why wasn't Linda Hamilton in T3?

Is it good practice to speed up and slow down where not written in a song?

Quick Slitherlink Puzzles: KPK and 123

Can my UK debt be collected because I have to return to US?

Is there research on the efficacy of taking good notes in math class?

Can a human variant take proficiency in initiative?

Do universities maintain secret textbooks?

Why are CEOs generally fired rather being demoted?

How can I improve my formal definitions?



How to search a string in multiple files and return the names of files in Powershell?


How to code, which look for a certain phrase/text in the folder by POWERSHELLRecursively find text in files (PowerShell)How to search a string in multiple files and return file name with line number/text in an Excel or csv in PowershellPacking and publishing NuGet packages with .NET CLI in TeamCityHow to search a string in multiple files and return all file information (like `dir`) in powershell?Find Python files according to their contentHow to check if a string contains a substring in BashHow do I iterate over the words of a string?How do I read / convert an InputStream into a String in Java?How to substring a string in Python?How do I make the first letter of a string uppercase in JavaScript?How to replace all occurrences of a string?How to check whether a string contains a substring in JavaScript?How do I check if a string contains a specific word?How do I convert a String to an int in Java?How do I find all files containing specific text on Linux?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








270















I have started learning powershell a couple of days ago, and I couldn't find anything on google that does what I need so please bear with my question.



I have been asked to replace some text strings into multiple files. I do not necessarily know the extension of the possible target files and I don't know their location either. So far I have managed to recursively browse into the directory (get-ChildItem -recurse) and find the string I was looking for with get-content and select-string:



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


The problem is, I can see the occurences of the text I am looking for, but I don't know how to tell PS to return the path and the name for every matching files as well.



How can I get the name and location of the files that contains the expression I am looking for?










share|improve this question





















  • 2





    Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

    – Kolob Canyon
    Oct 5 '16 at 18:44






  • 3





    I just spotted your comment and edited my question...2 years later! better late than never..:)

    – Bluz
    Sep 10 '18 at 9:59

















270















I have started learning powershell a couple of days ago, and I couldn't find anything on google that does what I need so please bear with my question.



I have been asked to replace some text strings into multiple files. I do not necessarily know the extension of the possible target files and I don't know their location either. So far I have managed to recursively browse into the directory (get-ChildItem -recurse) and find the string I was looking for with get-content and select-string:



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


The problem is, I can see the occurences of the text I am looking for, but I don't know how to tell PS to return the path and the name for every matching files as well.



How can I get the name and location of the files that contains the expression I am looking for?










share|improve this question





















  • 2





    Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

    – Kolob Canyon
    Oct 5 '16 at 18:44






  • 3





    I just spotted your comment and edited my question...2 years later! better late than never..:)

    – Bluz
    Sep 10 '18 at 9:59













270












270








270


113






I have started learning powershell a couple of days ago, and I couldn't find anything on google that does what I need so please bear with my question.



I have been asked to replace some text strings into multiple files. I do not necessarily know the extension of the possible target files and I don't know their location either. So far I have managed to recursively browse into the directory (get-ChildItem -recurse) and find the string I was looking for with get-content and select-string:



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


The problem is, I can see the occurences of the text I am looking for, but I don't know how to tell PS to return the path and the name for every matching files as well.



How can I get the name and location of the files that contains the expression I am looking for?










share|improve this question
















I have started learning powershell a couple of days ago, and I couldn't find anything on google that does what I need so please bear with my question.



I have been asked to replace some text strings into multiple files. I do not necessarily know the extension of the possible target files and I don't know their location either. So far I have managed to recursively browse into the directory (get-ChildItem -recurse) and find the string I was looking for with get-content and select-string:



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


The problem is, I can see the occurences of the text I am looking for, but I don't know how to tell PS to return the path and the name for every matching files as well.



How can I get the name and location of the files that contains the expression I am looking for?







string search text powershell recursion






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 10 '18 at 9:58







Bluz

















asked Nov 16 '11 at 15:00









BluzBluz

1,8266 gold badges21 silver badges28 bronze badges




1,8266 gold badges21 silver badges28 bronze badges










  • 2





    Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

    – Kolob Canyon
    Oct 5 '16 at 18:44






  • 3





    I just spotted your comment and edited my question...2 years later! better late than never..:)

    – Bluz
    Sep 10 '18 at 9:59












  • 2





    Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

    – Kolob Canyon
    Oct 5 '16 at 18:44






  • 3





    I just spotted your comment and edited my question...2 years later! better late than never..:)

    – Bluz
    Sep 10 '18 at 9:59







2




2





Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

– Kolob Canyon
Oct 5 '16 at 18:44





Maybe edit the question to be more generic. The answer to this question has nothing to do with JBoss or your application that you are working on it seems...

– Kolob Canyon
Oct 5 '16 at 18:44




3




3





I just spotted your comment and edited my question...2 years later! better late than never..:)

– Bluz
Sep 10 '18 at 9:59





I just spotted your comment and edited my question...2 years later! better late than never..:)

– Bluz
Sep 10 '18 at 9:59












10 Answers
10






active

oldest

votes


















418















This should give the location of the files that contain your pattern:



Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name





share|improve this answer




















  • 3





    What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

    – rud3y
    Sep 5 '12 at 12:57






  • 6





    Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

    – jon Z
    Sep 5 '12 at 16:48






  • 43





    Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

    – ben
    Apr 16 '15 at 15:27






  • 4





    it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

    – Girardi
    Apr 20 '18 at 15:47











  • @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

    – Kolob Canyon
    Sep 6 '18 at 15:44



















68















There are a variety of accurate answers here, but here is the most concise code for several different variations. For each variation, the top line shows the full syntax and the bottom shows terse syntax.



Item (2) is a more concise form of the answers from Jon Z and manojlds, while item (1) is equivalent to the answers from vikas368 and buygrush.




  1. List FileInfo objects for all files containing pattern:



    Get-ChildItem -Recurse filespec | Where-Object Select-String pattern $_ -Quiet 
    ls -r filespec | ? sls pattern $_ -q



  2. List file names for all files containing pattern:



    Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
    ls -r filespec | sls pattern | select -u Path



  3. List FileInfo objects for all files not containing pattern:



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



  4. List file names for all files not containing pattern:



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






share|improve this answer



























  • Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

    – KyleMit
    Apr 17 '15 at 13:54











  • I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

    – cBlaine
    Jul 22 '15 at 20:53


















14















Pipe the content of your



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


to fl *



You will see that the path is already being returned as a property of the objects.



IF you want just the path, use select path or select -unique path to remove duplicates:



Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path





share|improve this answer




















  • 1





    Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

    – Bluz
    Nov 18 '11 at 12:07






  • 3





    You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

    – RubberDuck
    Feb 9 '16 at 13:58











  • If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

    – Kolob Canyon
    Sep 6 '18 at 16:51


















13















This will display the path, filename and the content line it found that matched the pattern.



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





share|improve this answer



























  • simple and clear! The best answer.

    – DevRenanGaspar
    Nov 15 '18 at 9:12











  • If only a line could be added between results :)

    – cladelpino
    Mar 13 at 20:29


















9















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


This will give you the full details of all files






share|improve this answer

























  • Totally didn't know that -r worked. Figured you had to always do -Recurse

    – Kolob Canyon
    Sep 6 '18 at 17:03



















9















This is how I would do it, you don't need get-content:



ls -r | Select-String dummy | select line,path


or



ls -r | Select-String dummy | fl *


To see what the different properties are...






share|improve this answer






















  • 2





    +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

    – Protonova
    Jul 7 '17 at 16:51


















5















To keep the complete file details in resulting array you could use a slight modification of the answer posted by vikas368 (which didn't seem to work well with the ISE autocomplete):



Get-ChildItem -Recurse | Where-Object $_ 


or in short:



ls -r | ? $_ 





share|improve this answer
































    5















    If you search into one directory, you can do it:



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





    share|improve this answer
































      3















      This will display a list of the full path to each file that contains the search string:



      foreach ($file in Get-ChildItem | Select-String -pattern "dummy" | Select-Object -Unique path) $file.path


      Note that it doesn't display a header above the results and doesn't display the lines of text containing the search string. All it tells you is where you can find the files that contain the string.






      share|improve this answer






















      • 2





        Any idea how to display line number where the pattern was find, together with file name?

        – Piotr L
        May 4 '16 at 7:26


















      2















      I modified one of the answers above to give me a bit more information. This spared me a second query later on. It was something like this:



      Get-ChildItem `
      -Path "C:datapath" -Filter "Example*.dat" -recurse | `
      Select-String -pattern "dummy" | `
      Select-Object -Property Path,LineNumber,Line | `
      Export-CSV "C:ResultFile.csv"


      I can specify the path and file wildcards with this structures, and it saves the filename, line number and relevant line to an output file.






      share|improve this answer

























      • Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

        – Max Vollmer
        Mar 28 at 0:54













      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f8153750%2fhow-to-search-a-string-in-multiple-files-and-return-the-names-of-files-in-powers%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      10 Answers
      10






      active

      oldest

      votes








      10 Answers
      10






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      418















      This should give the location of the files that contain your pattern:



      Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name





      share|improve this answer




















      • 3





        What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

        – rud3y
        Sep 5 '12 at 12:57






      • 6





        Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

        – jon Z
        Sep 5 '12 at 16:48






      • 43





        Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

        – ben
        Apr 16 '15 at 15:27






      • 4





        it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

        – Girardi
        Apr 20 '18 at 15:47











      • @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

        – Kolob Canyon
        Sep 6 '18 at 15:44
















      418















      This should give the location of the files that contain your pattern:



      Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name





      share|improve this answer




















      • 3





        What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

        – rud3y
        Sep 5 '12 at 12:57






      • 6





        Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

        – jon Z
        Sep 5 '12 at 16:48






      • 43





        Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

        – ben
        Apr 16 '15 at 15:27






      • 4





        it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

        – Girardi
        Apr 20 '18 at 15:47











      • @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

        – Kolob Canyon
        Sep 6 '18 at 15:44














      418














      418










      418









      This should give the location of the files that contain your pattern:



      Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name





      share|improve this answer













      This should give the location of the files that contain your pattern:



      Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name






      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Nov 16 '11 at 15:08









      jon Zjon Z

      12.1k1 gold badge22 silver badges31 bronze badges




      12.1k1 gold badge22 silver badges31 bronze badges










      • 3





        What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

        – rud3y
        Sep 5 '12 at 12:57






      • 6





        Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

        – jon Z
        Sep 5 '12 at 16:48






      • 43





        Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

        – ben
        Apr 16 '15 at 15:27






      • 4





        it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

        – Girardi
        Apr 20 '18 at 15:47











      • @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

        – Kolob Canyon
        Sep 6 '18 at 15:44













      • 3





        What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

        – rud3y
        Sep 5 '12 at 12:57






      • 6





        Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

        – jon Z
        Sep 5 '12 at 16:48






      • 43





        Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

        – ben
        Apr 16 '15 at 15:27






      • 4





        it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

        – Girardi
        Apr 20 '18 at 15:47











      • @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

        – Kolob Canyon
        Sep 6 '18 at 15:44








      3




      3





      What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

      – rud3y
      Sep 5 '12 at 12:57





      What if you want to also MOVE those files?... I'm getting an error with this where I can't join a | Move-Item to the end of that.

      – rud3y
      Sep 5 '12 at 12:57




      6




      6





      Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

      – jon Z
      Sep 5 '12 at 16:48





      Move-Item doesn't have name parameter. Try adding | %Move-Item $_.name <destination>

      – jon Z
      Sep 5 '12 at 16:48




      43




      43





      Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

      – ben
      Apr 16 '15 at 15:27





      Get-ChildItem -Recurse | Select-String "dummy" -List | Select Path returns only the first match for each file so may be a little more efficient and avoids the need to group them

      – ben
      Apr 16 '15 at 15:27




      4




      4





      it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

      – Girardi
      Apr 20 '18 at 15:47





      it's worth noticing that you can filter for only a certain file type, say txt files, if you use Get-ChildItem -Recurse -Filter *.txt instead

      – Girardi
      Apr 20 '18 at 15:47













      @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

      – Kolob Canyon
      Sep 6 '18 at 15:44






      @rud3y I highly suggest you write it out in a script using a foreach loop if you're doing large operations like that. It becomes very convoluted when you try to do all of that on one line and it is very easy to make a large mistake. I speak from experience

      – Kolob Canyon
      Sep 6 '18 at 15:44














      68















      There are a variety of accurate answers here, but here is the most concise code for several different variations. For each variation, the top line shows the full syntax and the bottom shows terse syntax.



      Item (2) is a more concise form of the answers from Jon Z and manojlds, while item (1) is equivalent to the answers from vikas368 and buygrush.




      1. List FileInfo objects for all files containing pattern:



        Get-ChildItem -Recurse filespec | Where-Object Select-String pattern $_ -Quiet 
        ls -r filespec | ? sls pattern $_ -q



      2. List file names for all files containing pattern:



        Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
        ls -r filespec | sls pattern | select -u Path



      3. List FileInfo objects for all files not containing pattern:



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



      4. List file names for all files not containing pattern:



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






      share|improve this answer



























      • Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

        – KyleMit
        Apr 17 '15 at 13:54











      • I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

        – cBlaine
        Jul 22 '15 at 20:53















      68















      There are a variety of accurate answers here, but here is the most concise code for several different variations. For each variation, the top line shows the full syntax and the bottom shows terse syntax.



      Item (2) is a more concise form of the answers from Jon Z and manojlds, while item (1) is equivalent to the answers from vikas368 and buygrush.




      1. List FileInfo objects for all files containing pattern:



        Get-ChildItem -Recurse filespec | Where-Object Select-String pattern $_ -Quiet 
        ls -r filespec | ? sls pattern $_ -q



      2. List file names for all files containing pattern:



        Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
        ls -r filespec | sls pattern | select -u Path



      3. List FileInfo objects for all files not containing pattern:



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



      4. List file names for all files not containing pattern:



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






      share|improve this answer



























      • Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

        – KyleMit
        Apr 17 '15 at 13:54











      • I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

        – cBlaine
        Jul 22 '15 at 20:53













      68














      68










      68









      There are a variety of accurate answers here, but here is the most concise code for several different variations. For each variation, the top line shows the full syntax and the bottom shows terse syntax.



      Item (2) is a more concise form of the answers from Jon Z and manojlds, while item (1) is equivalent to the answers from vikas368 and buygrush.




      1. List FileInfo objects for all files containing pattern:



        Get-ChildItem -Recurse filespec | Where-Object Select-String pattern $_ -Quiet 
        ls -r filespec | ? sls pattern $_ -q



      2. List file names for all files containing pattern:



        Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
        ls -r filespec | sls pattern | select -u Path



      3. List FileInfo objects for all files not containing pattern:



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



      4. List file names for all files not containing pattern:



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






      share|improve this answer















      There are a variety of accurate answers here, but here is the most concise code for several different variations. For each variation, the top line shows the full syntax and the bottom shows terse syntax.



      Item (2) is a more concise form of the answers from Jon Z and manojlds, while item (1) is equivalent to the answers from vikas368 and buygrush.




      1. List FileInfo objects for all files containing pattern:



        Get-ChildItem -Recurse filespec | Where-Object Select-String pattern $_ -Quiet 
        ls -r filespec | ? sls pattern $_ -q



      2. List file names for all files containing pattern:



        Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
        ls -r filespec | sls pattern | select -u Path



      3. List FileInfo objects for all files not containing pattern:



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



      4. List file names for all files not containing pattern:



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







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Apr 17 '15 at 12:38









      KyleMit

      61.9k40 gold badges269 silver badges430 bronze badges




      61.9k40 gold badges269 silver badges430 bronze badges










      answered Feb 22 '14 at 21:06









      Michael SorensMichael Sorens

      26.6k13 gold badges97 silver badges157 bronze badges




      26.6k13 gold badges97 silver badges157 bronze badges















      • Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

        – KyleMit
        Apr 17 '15 at 13:54











      • I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

        – cBlaine
        Jul 22 '15 at 20:53

















      • Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

        – KyleMit
        Apr 17 '15 at 13:54











      • I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

        – cBlaine
        Jul 22 '15 at 20:53
















      Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

      – KyleMit
      Apr 17 '15 at 13:54





      Also, if you are just looking for Files that contain the pattern anywhere, you can give up after finding the first instance by using the -List parameter of Select-String

      – KyleMit
      Apr 17 '15 at 13:54













      I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

      – cBlaine
      Jul 22 '15 at 20:53





      I wish the OP had asked a slight variation of the question so that this would be the AA. #1 was very useful and it's obvious that @Michael Sorens groks PS!

      – cBlaine
      Jul 22 '15 at 20:53











      14















      Pipe the content of your



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


      to fl *



      You will see that the path is already being returned as a property of the objects.



      IF you want just the path, use select path or select -unique path to remove duplicates:



      Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path





      share|improve this answer




















      • 1





        Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

        – Bluz
        Nov 18 '11 at 12:07






      • 3





        You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

        – RubberDuck
        Feb 9 '16 at 13:58











      • If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

        – Kolob Canyon
        Sep 6 '18 at 16:51















      14















      Pipe the content of your



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


      to fl *



      You will see that the path is already being returned as a property of the objects.



      IF you want just the path, use select path or select -unique path to remove duplicates:



      Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path





      share|improve this answer




















      • 1





        Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

        – Bluz
        Nov 18 '11 at 12:07






      • 3





        You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

        – RubberDuck
        Feb 9 '16 at 13:58











      • If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

        – Kolob Canyon
        Sep 6 '18 at 16:51













      14














      14










      14









      Pipe the content of your



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


      to fl *



      You will see that the path is already being returned as a property of the objects.



      IF you want just the path, use select path or select -unique path to remove duplicates:



      Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path





      share|improve this answer













      Pipe the content of your



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


      to fl *



      You will see that the path is already being returned as a property of the objects.



      IF you want just the path, use select path or select -unique path to remove duplicates:



      Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path






      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Nov 16 '11 at 16:20









      manojldsmanojlds

      226k48 gold badges394 silver badges376 bronze badges




      226k48 gold badges394 silver badges376 bronze badges










      • 1





        Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

        – Bluz
        Nov 18 '11 at 12:07






      • 3





        You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

        – RubberDuck
        Feb 9 '16 at 13:58











      • If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

        – Kolob Canyon
        Sep 6 '18 at 16:51












      • 1





        Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

        – Bluz
        Nov 18 '11 at 12:07






      • 3





        You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

        – RubberDuck
        Feb 9 '16 at 13:58











      • If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

        – Kolob Canyon
        Sep 6 '18 at 16:51







      1




      1





      Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

      – Bluz
      Nov 18 '11 at 12:07





      Thanks to you both, this is exactly what I am looking for. Unfortunately, when there are many subdirectories involved in the path, then PS cuts the absolute path and adds three dots at the end of the line like dir1dir2dir3path... so I don't know which file is returned. Is there a way to tell PS to be less greedy on characters and bother showing up the full path ? :) Thanks a lot !

      – Bluz
      Nov 18 '11 at 12:07




      3




      3





      You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

      – RubberDuck
      Feb 9 '16 at 13:58





      You need to add the -File switch to Get-ChildItem or you end up with a never ending cascade of errors from trying to call Get-Content on directories.

      – RubberDuck
      Feb 9 '16 at 13:58













      If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

      – Kolob Canyon
      Sep 6 '18 at 16:51





      If you need the full path you can do this (Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy").FullName People seem to forget PowerShell is object oriented; when in doubt, look for a property

      – Kolob Canyon
      Sep 6 '18 at 16:51











      13















      This will display the path, filename and the content line it found that matched the pattern.



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





      share|improve this answer



























      • simple and clear! The best answer.

        – DevRenanGaspar
        Nov 15 '18 at 9:12











      • If only a line could be added between results :)

        – cladelpino
        Mar 13 at 20:29















      13















      This will display the path, filename and the content line it found that matched the pattern.



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





      share|improve this answer



























      • simple and clear! The best answer.

        – DevRenanGaspar
        Nov 15 '18 at 9:12











      • If only a line could be added between results :)

        – cladelpino
        Mar 13 at 20:29













      13














      13










      13









      This will display the path, filename and the content line it found that matched the pattern.



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





      share|improve this answer















      This will display the path, filename and the content line it found that matched the pattern.



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






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Jun 11 '15 at 18:41









      josliber

      38.3k11 gold badges70 silver badges106 bronze badges




      38.3k11 gold badges70 silver badges106 bronze badges










      answered Jun 11 '15 at 18:23









      user5000502user5000502

      1311 silver badge2 bronze badges




      1311 silver badge2 bronze badges















      • simple and clear! The best answer.

        – DevRenanGaspar
        Nov 15 '18 at 9:12











      • If only a line could be added between results :)

        – cladelpino
        Mar 13 at 20:29

















      • simple and clear! The best answer.

        – DevRenanGaspar
        Nov 15 '18 at 9:12











      • If only a line could be added between results :)

        – cladelpino
        Mar 13 at 20:29
















      simple and clear! The best answer.

      – DevRenanGaspar
      Nov 15 '18 at 9:12





      simple and clear! The best answer.

      – DevRenanGaspar
      Nov 15 '18 at 9:12













      If only a line could be added between results :)

      – cladelpino
      Mar 13 at 20:29





      If only a line could be added between results :)

      – cladelpino
      Mar 13 at 20:29











      9















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


      This will give you the full details of all files






      share|improve this answer

























      • Totally didn't know that -r worked. Figured you had to always do -Recurse

        – Kolob Canyon
        Sep 6 '18 at 17:03
















      9















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


      This will give you the full details of all files






      share|improve this answer

























      • Totally didn't know that -r worked. Figured you had to always do -Recurse

        – Kolob Canyon
        Sep 6 '18 at 17:03














      9














      9










      9









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


      This will give you the full details of all files






      share|improve this answer













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


      This will give you the full details of all files







      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Nov 22 '11 at 13:13









      vikas368vikas368

      6331 gold badge5 silver badges13 bronze badges




      6331 gold badge5 silver badges13 bronze badges















      • Totally didn't know that -r worked. Figured you had to always do -Recurse

        – Kolob Canyon
        Sep 6 '18 at 17:03


















      • Totally didn't know that -r worked. Figured you had to always do -Recurse

        – Kolob Canyon
        Sep 6 '18 at 17:03

















      Totally didn't know that -r worked. Figured you had to always do -Recurse

      – Kolob Canyon
      Sep 6 '18 at 17:03






      Totally didn't know that -r worked. Figured you had to always do -Recurse

      – Kolob Canyon
      Sep 6 '18 at 17:03












      9















      This is how I would do it, you don't need get-content:



      ls -r | Select-String dummy | select line,path


      or



      ls -r | Select-String dummy | fl *


      To see what the different properties are...






      share|improve this answer






















      • 2





        +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

        – Protonova
        Jul 7 '17 at 16:51















      9















      This is how I would do it, you don't need get-content:



      ls -r | Select-String dummy | select line,path


      or



      ls -r | Select-String dummy | fl *


      To see what the different properties are...






      share|improve this answer






















      • 2





        +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

        – Protonova
        Jul 7 '17 at 16:51













      9














      9










      9









      This is how I would do it, you don't need get-content:



      ls -r | Select-String dummy | select line,path


      or



      ls -r | Select-String dummy | fl *


      To see what the different properties are...






      share|improve this answer















      This is how I would do it, you don't need get-content:



      ls -r | Select-String dummy | select line,path


      or



      ls -r | Select-String dummy | fl *


      To see what the different properties are...







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Nov 20 '18 at 20:27

























      answered Jun 5 '17 at 17:34









      js2010js2010

      3,4412 gold badges11 silver badges24 bronze badges




      3,4412 gold badges11 silver badges24 bronze badges










      • 2





        +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

        – Protonova
        Jul 7 '17 at 16:51












      • 2





        +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

        – Protonova
        Jul 7 '17 at 16:51







      2




      2





      +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

      – Protonova
      Jul 7 '17 at 16:51





      +1, This works perfectly for my case, however use select Pattern, LineNumber, Filename for more concise output. Line returns EVERYTHING on the line containing your pattern string. You can also easily output this to a csv if you'd wish.

      – Protonova
      Jul 7 '17 at 16:51











      5















      To keep the complete file details in resulting array you could use a slight modification of the answer posted by vikas368 (which didn't seem to work well with the ISE autocomplete):



      Get-ChildItem -Recurse | Where-Object $_ 


      or in short:



      ls -r | ? $_ 





      share|improve this answer





























        5















        To keep the complete file details in resulting array you could use a slight modification of the answer posted by vikas368 (which didn't seem to work well with the ISE autocomplete):



        Get-ChildItem -Recurse | Where-Object $_ 


        or in short:



        ls -r | ? $_ 





        share|improve this answer



























          5














          5










          5









          To keep the complete file details in resulting array you could use a slight modification of the answer posted by vikas368 (which didn't seem to work well with the ISE autocomplete):



          Get-ChildItem -Recurse | Where-Object $_ 


          or in short:



          ls -r | ? $_ 





          share|improve this answer













          To keep the complete file details in resulting array you could use a slight modification of the answer posted by vikas368 (which didn't seem to work well with the ISE autocomplete):



          Get-ChildItem -Recurse | Where-Object $_ 


          or in short:



          ls -r | ? $_ 






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Feb 21 '14 at 10:12









          buygrushbuygrush

          2,5142 gold badges23 silver badges30 bronze badges




          2,5142 gold badges23 silver badges30 bronze badges
























              5















              If you search into one directory, you can do it:



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





              share|improve this answer





























                5















                If you search into one directory, you can do it:



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





                share|improve this answer



























                  5














                  5










                  5









                  If you search into one directory, you can do it:



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





                  share|improve this answer













                  If you search into one directory, you can do it:



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






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Feb 5 '17 at 11:00









                  Esperento57Esperento57

                  9,5972 gold badges19 silver badges28 bronze badges




                  9,5972 gold badges19 silver badges28 bronze badges
























                      3















                      This will display a list of the full path to each file that contains the search string:



                      foreach ($file in Get-ChildItem | Select-String -pattern "dummy" | Select-Object -Unique path) $file.path


                      Note that it doesn't display a header above the results and doesn't display the lines of text containing the search string. All it tells you is where you can find the files that contain the string.






                      share|improve this answer






















                      • 2





                        Any idea how to display line number where the pattern was find, together with file name?

                        – Piotr L
                        May 4 '16 at 7:26















                      3















                      This will display a list of the full path to each file that contains the search string:



                      foreach ($file in Get-ChildItem | Select-String -pattern "dummy" | Select-Object -Unique path) $file.path


                      Note that it doesn't display a header above the results and doesn't display the lines of text containing the search string. All it tells you is where you can find the files that contain the string.






                      share|improve this answer






















                      • 2





                        Any idea how to display line number where the pattern was find, together with file name?

                        – Piotr L
                        May 4 '16 at 7:26













                      3














                      3










                      3









                      This will display a list of the full path to each file that contains the search string:



                      foreach ($file in Get-ChildItem | Select-String -pattern "dummy" | Select-Object -Unique path) $file.path


                      Note that it doesn't display a header above the results and doesn't display the lines of text containing the search string. All it tells you is where you can find the files that contain the string.






                      share|improve this answer















                      This will display a list of the full path to each file that contains the search string:



                      foreach ($file in Get-ChildItem | Select-String -pattern "dummy" | Select-Object -Unique path) $file.path


                      Note that it doesn't display a header above the results and doesn't display the lines of text containing the search string. All it tells you is where you can find the files that contain the string.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Dec 7 '14 at 18:48

























                      answered Dec 7 '14 at 15:55









                      Little GirlLittle Girl

                      312 bronze badges




                      312 bronze badges










                      • 2





                        Any idea how to display line number where the pattern was find, together with file name?

                        – Piotr L
                        May 4 '16 at 7:26












                      • 2





                        Any idea how to display line number where the pattern was find, together with file name?

                        – Piotr L
                        May 4 '16 at 7:26







                      2




                      2





                      Any idea how to display line number where the pattern was find, together with file name?

                      – Piotr L
                      May 4 '16 at 7:26





                      Any idea how to display line number where the pattern was find, together with file name?

                      – Piotr L
                      May 4 '16 at 7:26











                      2















                      I modified one of the answers above to give me a bit more information. This spared me a second query later on. It was something like this:



                      Get-ChildItem `
                      -Path "C:datapath" -Filter "Example*.dat" -recurse | `
                      Select-String -pattern "dummy" | `
                      Select-Object -Property Path,LineNumber,Line | `
                      Export-CSV "C:ResultFile.csv"


                      I can specify the path and file wildcards with this structures, and it saves the filename, line number and relevant line to an output file.






                      share|improve this answer

























                      • Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                        – Max Vollmer
                        Mar 28 at 0:54















                      2















                      I modified one of the answers above to give me a bit more information. This spared me a second query later on. It was something like this:



                      Get-ChildItem `
                      -Path "C:datapath" -Filter "Example*.dat" -recurse | `
                      Select-String -pattern "dummy" | `
                      Select-Object -Property Path,LineNumber,Line | `
                      Export-CSV "C:ResultFile.csv"


                      I can specify the path and file wildcards with this structures, and it saves the filename, line number and relevant line to an output file.






                      share|improve this answer

























                      • Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                        – Max Vollmer
                        Mar 28 at 0:54













                      2














                      2










                      2









                      I modified one of the answers above to give me a bit more information. This spared me a second query later on. It was something like this:



                      Get-ChildItem `
                      -Path "C:datapath" -Filter "Example*.dat" -recurse | `
                      Select-String -pattern "dummy" | `
                      Select-Object -Property Path,LineNumber,Line | `
                      Export-CSV "C:ResultFile.csv"


                      I can specify the path and file wildcards with this structures, and it saves the filename, line number and relevant line to an output file.






                      share|improve this answer













                      I modified one of the answers above to give me a bit more information. This spared me a second query later on. It was something like this:



                      Get-ChildItem `
                      -Path "C:datapath" -Filter "Example*.dat" -recurse | `
                      Select-String -pattern "dummy" | `
                      Select-Object -Property Path,LineNumber,Line | `
                      Export-CSV "C:ResultFile.csv"


                      I can specify the path and file wildcards with this structures, and it saves the filename, line number and relevant line to an output file.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Mar 28 at 0:31









                      RenoGregRenoGreg

                      211 bronze badge




                      211 bronze badge















                      • Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                        – Max Vollmer
                        Mar 28 at 0:54

















                      • Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                        – Max Vollmer
                        Mar 28 at 0:54
















                      Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                      – Max Vollmer
                      Mar 28 at 0:54





                      Cool! Thanks for this additional solution :) However, could you please link to the answer that you based your solution on and name the author of that answer to give credit? Thanks!

                      – Max Vollmer
                      Mar 28 at 0:54

















                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f8153750%2fhow-to-search-a-string-in-multiple-files-and-return-the-names-of-files-in-powers%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                      Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

                      Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript