I have a folder with many .txt
files. I would like to find string "X"
in all of these files then I would like to copy the found strings into .txt
files into a different folder.
So far I have tried :
@echo on
findstr /m "X" "%userprofile%\Desktop\New_Folder\New_Folder\*.txt"
if %errorlevel%==0 do (
for %%c in (*.txt) do (
type %%c >> "%UserProfile%\Desktop\New_Folder\%%~nc.txt"
pause
I do not understand the output %%~nc.txt
part it's suppost to copy the changed .txt
files to a new folder with the same name.
I would like to point out that string "X"
is found in different places in the .txt
file.
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "mystring=x"
FOR %%a IN ("%sourcedir%\*.txt") DO FINDSTR "%mystring%" "%%a">nul&IF NOT ERRORLEVEL 1 FINDSTR "%mystring%" "%%a">"%destdir%\%%~nxa"
GOTO :EOF
You would need to change the settings of sourcedir
and destdir
to suit your circumstances and set mystring
appropriately, noting that you may have to adjust the findstr
switches to accomodate case, literal and space-in-target-string.
Naturally, you could code sourcedir
etc. directly as literals, but doing it this way means that the relevant strings need only be changed in one place.