Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как добавить несколько строк в кучу *.txt файлов

Ответить
Настройки темы
CMD/BAT - [решено] как добавить несколько строк в кучу *.txt файлов

Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Имеется более 100 текстовых файлов в C:\Folder\*.txt
В них имеется текст максимум до 7 строчки, в низу все пусто.
Нужно добавить в 8ю и 9ю строчку определенный текст
В нужной директории и в нужном файле закидывая в ту папку батник и запуская его там я добавлял нужную мне строчку (строчки) таким путем

Код: Выделить весь код
powershell "$f=(Get-Content file.txt);$f[8]='My-New-Text';$f | set-content file.txt"
таким путем я добавляю My-New-Text в 8ю строчку.
Как переделать скрипт что-бы он обработал таким путем все *.txt файлы в (C:\Folder\*.txt)
Буду очень признателен за помощь

-------
We don't call 911


Отправлено: 19:20, 16-10-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6690
Благодарности: 1566

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
"Восьмая строка
Девятая строка" |Add-Content "C:\Folder\*.txt"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:56, 16-10-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата:
Девятая строка" |Add-Content "C:\Folder\*.txt"
Речь не о 9й строчке

Цитата:
Как переделать скрипт что-бы он обработал таким путем все *.txt файлы в (C:\Folder\*.txt)
У текстовых файлов разные имена
а что-бы просто добавить нужные строчки в известном файле можно просто продублировать

Код: Выделить весь код
powershell "$f=(Get-Content file1.txt);$f[8]='тут первый текст';$f | set-content file1.txt"
powershell "$f=(Get-Content file1.txt);$f[9]='тут второй текст';$f | set-content file1.txt"
powershell "$f=(Get-Content file1.txt);$f[10]='тут третий текст';$f | set-content file1.txt"
вопрос был в другом

-------
We don't call 911


Отправлено: 20:10, 16-10-2022 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6690
Благодарности: 1566

Профиль | Отправить PM | Цитировать


В моём примере добавляется сразу две строки и сразу во все файлы.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 20:32, 16-10-2022 | #4


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


DJ Mogarych,
Цитата:
В моём примере добавляется сразу две строки и сразу во все файлы.
Ничего не добавляется:

Нашел рабочий метод. Может кому понадобится...

Код: Выделить весь код
Get-ChildItem C:\Folder\*.txt |               
  ForEach-Object {                             
    $f = ($_ | Get-Content -ReadCount 0)       
    $f[7] = 'я восьмой текст'; $f[8] = 'я девятый текст'               
    Set-Content $_.FullName $f                
  }
тем самым заполняем все текстовые файлы из C:\Folder

Код: Выделить весь код
я восьмой текст
я девятый текст

Еще один код который можно использовать на все случаи жизни

Код: Выделить весь код
Get-ChildItem -Path 'C:\Folder' -Filter '*.txt' | ForEach-Object {
$LineIndex = 0
$FileContent = Switch -File $_.FullName {Default {
$LineIndex++
If ($LineIndex -Eq 8) {@'
тут строка 8
тут строка 9 
тут строка 10
тут строка 11
тут строка 12  # и т.д
'@}
$_}}
Set-Content -Path $_.FullName -Value $FileContent}

Только следует обратить внимание на то, что эти оба варианта не вставляют новые строки,
а только обновляют (меняют) существующие.

-------
We don't call 911


Последний раз редактировалось minutka15, 17-10-2022 в 06:01.


Отправлено: 03:11, 17-10-2022 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] как добавить несколько строк в кучу *.txt файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление строк из txt файлов John87 Скриптовые языки администрирования Windows 21 13-10-2022 06:45
Любой язык - [решено] Добавить блоки строк из одного txt файла в другие txt файлы Alexander_88 Скриптовые языки администрирования Windows 7 06-07-2019 00:15
Любой язык - [решено] Разделение одного txt файла на несколько txt файлов Alexander_88 Скриптовые языки администрирования Windows 3 25-11-2018 23:50
Любой язык - Удаление из txt файлов не нужных строк и дубликатов строк. voler Скриптовые языки администрирования Windows 1 26-02-2018 14:10
CMD/BAT - Сформировать из 1 файла несколько файлов с разным числом строк nastasa Скриптовые языки администрирования Windows 6 11-05-2017 12:15




 
Переход