|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
||||||
Массовая подмена строки из одного файла в других Powershell18.08.2021, 17:18. Показов 3494. Ответов 19
Привет друзья! Появился такой вопрос, пытаюсь скопировать одну строку из нужного мне файла в файлах, с разными именами в папке. При чем не абы какую, а конкретную строку меняю:
0
|
||||||
| 18.08.2021, 17:18 | |
|
Ответы с готовыми решениями:
19
Подмена файла hosts, подмена стартовой страницы, обращение utorrent к подозрительным адресам
|
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
|||
| 18.08.2021, 18:13 | |||
0
|
|||
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 18.08.2021, 18:38 [ТС] | |
|
Файл name.ps1 содержит 1 строку с данными 123456789. Нужно перенести эту строку, из файла name.ps1 в файлы, расположенные в папке: C:\Users\IvanMB\Desktop\1. В папке 1 находятся 2 или более файлов. Пытался перенести 1 строку данных из файла name ps1 в директорию C:\Users\IvanMB\Desktop\1 и заменить во всех, находящихся там, файлах, строку 4. Но вышло то, что вышло см. скриншоты.
0
|
|
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
|
| 18.08.2021, 18:42 | |
|
0
|
|
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 18.08.2021, 18:43 [ТС] | |
|
Этот скрипт, на один файл, если копировать например в самый свежесозданный файл, работает отлично, а на массив не выходит переделать.
0
|
|
|
6799 / 2297 / 349
Регистрация: 10.12.2013
Сообщений: 7,924
|
|
| 18.08.2021, 18:45 | |
|
по-моему, маловато переименований и переносов файлов, строчек, папок и тапок.
я бы усилил. пока ты ешё молот. а то так и жизнь пройдёт.
0
|
|
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 18.08.2021, 18:51 [ТС] | |
|
Ты из запоя все не как не выйдешь что ли? Что за бред пишешь?
0
|
|
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
| 18.08.2021, 20:43 | ||||||
Сообщение было отмечено DjonyCooper как решение
Решение
1
|
||||||
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
||||||
| 19.08.2021, 10:58 [ТС] | ||||||
|
Не сработал, выдает ошибку:
gc : Cannot find path 'C:\WINDOWS\system32\file2.txt' because it does not exist. At C:\Users\IvanMB\Desktop\1.ps1:6 char:14 + $fileOut = gc $_ + ~~~~~ + CategoryInfo : ObjectNotFound: (C:\WINDOWS\system32\file2.txt:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Comman ds.GetContentCommand Cannot index into a null array. At C:\Users\IvanMB\Desktop\1.ps1:7 char:3 + $fileOut -Replace $fileOut[2], $Line3|Set-Content $_ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ( [], RuntimeException+ FullyQualifiedErrorId : NullArray
0
|
||||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||||
| 19.08.2021, 12:47 | ||||||||
|
можно без предисловий
0
|
||||||||
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 19.08.2021, 12:49 [ТС] | |
|
Это я уже пробовал менять что то, с gci тоже самое пишет в ошибке
gci : Cannot find path 'C:\WINDOWS\system32\file2.txt' because it does not exist. At C:\Users\IvanMB\Desktop\1.ps1:6 char:14 + $fileOut = gci $_ + ~~~~~~ + CategoryInfo : ObjectNotFound: (C:\WINDOWS\system32\file2.txt:String) [Get-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Comman ds.GetChildItemCommand Cannot index into a null array. At C:\Users\IvanMB\Desktop\1.ps1:7 char:3 + $fileOut -Replace $fileOut[2], $Line3|Set-Content $_ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ( [], RuntimeException+ FullyQualifiedErrorId : NullArray
0
|
|
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 19.08.2021, 13:01 [ТС] | |
|
0
|
|
|
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
|
| 19.08.2021, 14:01 | |
|
Для чего вам запускать сценарий из системной папки? Второе, в ps v5 с "автоматическими" переменными нужно быть очень аккуратным: шаг влево, шаг вправо, - трейсбек и хост захлопнется.
1
|
|
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 19.08.2021, 14:03 [ТС] | |
|
Спасибо! Нашел загвоздку, добавив .FullName после $fileAll все заработало!
$fileIn = gc "C:\Users\IvanMB\Desktop\name.ps1" # Берем 3-ю строку из файла выше и запоминаем в переменную $Line3 = $fileIn[2] $fileAll = gci "C:\Users\IvanMB\Desktop\Papka" $fileAll.FullName| %{ $fileOut = gc $_ # Меняем в каждом файле из папки 'C:\papka' 3-ю строку на запомненную в переменной $fileOut -Replace $fileOut[2], $Line3|Set-Content $_ }
0
|
|
|
10 / 7 / 4
Регистрация: 28.05.2021
Сообщений: 136
|
|
| 19.08.2021, 14:53 [ТС] | |
|
Рано обрадовался, скрипт рабочий, безусловно, но работает только с маленькими файлами, не понимаю как так, но когда подставил его на замену строк к большому скрипту получил это:
Поковырявшись понял, что у меня в скрипте, в месте куда нужно вставлять как раз таки строчку пробелы, копируя в место где пробел, все данные в конечном файле по какой то причине меняются. Убрал пробелы все заработало, но ... по хорошему мне нужны эти пробелы, буду думать как исправить. p.s скрипт, который показывал первым хорошо работает с пробелами, но не работает с массой файлов, только с одним. А этот выходит работает с массой, но не до конца так, как нужно.
0
|
|
|
㊙️
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
|
||||||||
| 19.08.2021, 16:40 | ||||||||
Сообщение было отмечено DjonyCooper как решение
Решение
или вызывает ошибку: "Недопустимый шаблон регулярного выражения".
2
|
||||||||
|
|
||||||
| 20.08.2021, 09:05 | ||||||
1
|
||||||
|
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
| 20.08.2021, 10:18 | ||||||
|
Переделал
Спасибо за подсказку Fors1k,!
2
|
||||||
| 20.08.2021, 10:18 | |
|
Помогаю со студенческими работами здесь
20
Powershell импорт последней строки из csv файла
Макрос для копирования формул из одного файла в 1000 других Переписать целые числа одного файла в два других по четности и нечетности
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|