Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для 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