Poligraf
Poligraf

Reputation: 3

Windows Batch How to delete specific words from txt file

I can't figure out how to remove a piece of text in a line.

I have a batch file that creates a list of files of interest to me in the selected folder.

dir D:\pool\template_test>U:\Desktop\list.txt
findstr "Work_T" U:\Desktop\list.txt > U:\Desktop\tamplates.txt

Output:

2013-03-13  17:24               622 Work_T_tamplate1.fdf

In final file, as you can see, presents the date, time, size, but I only need the name. How can I do this?

I tried to use the example from the other post, but it does not work:

for /f "tokens=3" %%A in (U:\Desktop\tamplates.txt) do findstr /C".dot" /C".pdf" /C".fdf" %%A

final file after using proposed code

Upvotes: 0

Views: 1775

Answers (1)

user7818749
user7818749

Reputation:

So you already got an answer in comments by Stephan

These will include the search for you, the following only returns the filename:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%i"
  )
)>"U:\Desktop\tamplates.txt"

You could however also want the full path, so this would include the full path of the file:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%~fi"
  )
)>"U:\Desktop\tamplates.txt"

add /s to recurse through subfolders if needed.

Edit

for UNC paths:

(@for /f %i in ('dir /b /a-d "\\tuesrna02\pool\template" ^| findstr /i "Work_T"') do (
    @echo %%i
  )
)>"U:\Desktop\tamplates.txt"

Upvotes: 1

Related Questions