PDA

Показать полную графическую версию : [решено] добавить в конце каждой строки txt файла название самого файла


rwsct
14-11-2021, 18:34
Здравствуйте, прошу помощи.

Есть папка с множеством текстовых файлов. В каждом файле есть множество строк.
например файл 123.test.txt
с содержимым
aaa
bbb
zzz

Нужно обработать все файлы в папке, чтобы в конце каждой строки каждого файла прописывалось название файла (желательно без расширения)
Результат:
aaa.test
bbb.test
zzz.test

Помогите пожалуйста.

rwsct
14-11-2021, 18:54
Нашел такой пример, но он делает не то что мне нужно

@echo off
for /f "delims=" %%a in ('dir/a-d/b "*.txt"') do <"%%a">$ (for /f "delims=" %%b in ('find /n /v ""') do @set "s=%%b"& cmd/v/c echo %%~na !s:*]=!)& move $ "%%a"
exit

он берет имя файла (без расширения) ставит его в начало строки и через пробел ставит исходную строку
Результат.
123.test aaa
123.test bbb
123.test zzz

megaloman
14-11-2021, 19:53
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Mask=*.txt"
Set "Delim=."

For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) Do (
For /F "usebackq delims=" %%s in (`type "%BoxIn%\%%f" ^& Del "%BoxIn%\%%f"`) Do (
>>"%BoxIn%\%%f" (Echo %%s%Delim%%%~nf)
)
)
pause
Exit /B

alpap
15-11-2021, 05:01
Нашел такой пример, но он делает не то что мне нужно »
похоже на мой "почерк". А догадаться поменять как надо - не судьба? Вы ведь учитесь чтобы понимать, а не искать каждый раз готовое, совпадающее на 100%, решение.

@echo off
for /f "delims=" %%a in ('dir /a-d/b "*.txt"') do <"%%a">$ (for /f "delims=" %%b in ('find /n /v ""') do @set "s=%%b"& cmd /v/c echo !s:*]=!.%%~na)& move $ "%%a"
exit




© OSzone.net 2001-2012