Search code examples
stringwindowsbatch-fileextractfindstr

Get specific string from a text file using batch command


I am looking for a Windows batch script command that can extract specific data string from an automatically generated text file. Note that the first line in the test.txt file is always empty. I need to extract only "2017/01/01-01" (from the 2nd line) to a different file. Findstr itself cannot be used as that will always extract whole line, not only the selected string.

Example test.txt file content:

<empty line>
    DateID : 2017/01/01-01     
        texttextext
        texttextext
        ...

Thanks in advance.


Solution

  • gets the first occurrence of DateID : :

    for /f "tokens=2 delims=:" %%a in ('type test.txt^|find "DateID : "') do (
      set "dateid=%%a" & goto :continue
    )
    :continue
    set "dateid=%dateid:~1%"
    echo %dateid%