Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 9
1

Как в начало каждой строки каждого текстового файла в текущем каталоге вставить имя этого же файла?

24.12.2016, 22:47. Просмотров 1679. Ответов 5
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста как в текущем каталоге, в начало каждой строки каждого текстового файла, вставить имя этого же файла. Интересует .bat .Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2016, 22:47
Ответы с готовыми решениями:

Записать имя каждого текстового файла в начало каждой строки этого же файла (кодировка файлов — UTF-8)
Подскажите программу или батник. Проблема в том, что есть много TXT UTF-8 файлов, нужно взять имя...

Как в начало каждой строки текстового файла вставить заданное слово?
как в txt в каждую строку перед первым словом в строке написать слово mod? пустых строк нет ...

В начало и конец каждой строки текстового файла добавить разделитель «|»
Задание: Даны три файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти...

Вставить в начало каждой печатаемой строки из файла ее порядковый номер
Создайте текстовый файл p, разбитый на непустые строки. составьте программу, которая построчно...

5
643 / 271 / 102
Регистрация: 17.03.2014
Сообщений: 648
24.12.2016, 23:48 2
difuzor, примерно так:
Windows Batch file
1
2
3
4
5
6
@echo off
for /f "usebackq tokens=*" %%v in (`dir /b *.txt`) do (
 >"update_%%~v" (for /f %%a in ('more "%%~v"') do echo:%%~nv%%a)
 >nul 2>nul del "%%~v"
 >nul ren "update_%%~v" "%%~v"
)
1
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 9
25.12.2016, 00:18  [ТС] 3
b0gus,
Вставляет, только стирает все остальные строки. Кодировка UTF-8 если это имеет значение
0
3655 / 1877 / 612
Регистрация: 26.04.2015
Сообщений: 6,214
25.12.2016, 00:47 4
Лучший ответ Сообщение было отмечено difuzor как решение

Решение

Windows Batch file
1
2
3
@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
Добавлено через 1 минуту
пустые строки учтены.
1
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 9
25.12.2016, 01:02  [ТС] 5
b0gus,

Вот нашёл такой способ
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo off
SetLocal EnableExtensions
 
:: Укзать папку, откуда обрабатывать файлы TXT
set SrcFolder="%~dp0\temp"
set mask=*.log
 
For /F "delims=" %%a in ('dir /b /a-d "%SrcFolder%\%mask%"') do (
  set "First="
  For /F "delims=" %%b in ('type "%SrcFolder%\%%a"') do (
    if not Defined First (
      set First=true
      call :WithBOM "%%b" "%%a:" "%SrcFolder%\%%a_"
    ) else (
      >>"%SrcFolder%\%%a_" echo=%%a: %%b
    )
  )
  >NUL move /y "%SrcFolder%\%%a_" "%%a"
)
pause
goto :eof
 
:WithBOM
  set "Text=%~1"
  set "BOM=%Text:~,3%"
  For /F "delims=" %%a in ("%BOM%%~2 %Text:~3%") do >>"%~3" echo=%%a
Exit /B
Только мне нужно вставлять имена файлов без расширения и в каталог temp он в текущем каталоге.
подправьте код пожалуйста.

Добавлено через 8 минут
alpap,
Спасибо огромное, а где подправить чтоб фалы правились не в текущем каталоге а в каталоге temp текущего каталога
0
3655 / 1877 / 612
Регистрация: 26.04.2015
Сообщений: 6,214
25.12.2016, 01:12 6
Лучший ответ Сообщение было отмечено difuzor как решение

Решение

Windows Batch file
1
dir/a-d/b ".\temp\*.txt"
Добавлено через 3 минуты
даже лучше так:
Windows Batch file
1
2
3
4
5
@echo off
pushd "temp"
 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"
popd
exit
иначе и дальше по коду надо пути править.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2016, 01:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вставить в начало каждой строки файла ее номер и записать преобразованные строки в новый файл
Дан текстовый файл. Вставить в начало каждой строки ее номер и записать преобразованные строки в...

Вставить в начало каждой строки файла ее номер и записать результат в другой файл
Всем привет=) Помогите решить задачку.....=( Дан текстовый файл, содержащий строки. Вставить в...

Вывести на экран имя файла, имеющего наименьшую длину среди файлов, расположенных в текущем каталоге
Здравствуйте, Не знаю, как написать эту программу. Единственное что я придумал, что она долга...

Построчно напечатать содержимое текстового файла, вставляя в начало каждой печатаемой строки ее порядковый номер
Создайте текстовый файл р , разбитый на не пустые строки. Составьте программу, которая построчно...

переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её порядковый номер(с++)
переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её...

Вставить в конец каждой строки текстового файла число N, равное количеству слов в строке
Откорректировать данный текстовый файл Т, вставляя в конец каждой его строки число N, равное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.