Массовое добавление одной строки из текстового списка в каждый текстовый файл в папке
Есть папка с текстовыми файлами (500 шт). И есть другой текстовый файл с 500 строками текста (список). Нужен код для какого-нибудь батничка или подобие, чтоб строки из списка поочерёдно добавились следующей строкой a каждом из файлов папки: в 1й файл в папке добавилась 1я строка списка, во 2й файл - 2я строка списка. И т. д.
|
1. Ds444, есть одна проблема: не существует единого и однозначного порядка файлов, даже в Проводнике и в командной строке порядок/взаиморасположение файлов может отличаться. Что скажете на это?
2. Кодировка текстовых файлов какая? Какие концы строк — CrLf, Lf или Cr? 3. Кодировка и концы строк «другой текстовый файл с 500 строками текста (список)» какие? 4. Как быть, если файлов окажется меньше, чем строк в «другой текстовый файл»? Как быть, если наоборот — меньше будет строк, нежели файлов? А так-то тупо — держите: Код:
@echo off |
Цитата:
Цитата:
Цитата:
Потестил батничек. Строку из файла он добавляет в конец первой строки, которая уже есть в файле. Но вторую всё же создаёт. Она пустая остаётся. |
Цитата:
Цитата:
|
Вложений: 1
Цитата:
Архив вот: http://forum.oszone.net/attachment.p...1&d=1533019223 |
Цитата:
Цитата:
Вам есть, что сказать по изложенному? Можете дать какие-то пояснения? |
Цитата:
|
Ds444, если все файлы в кодировке UTF-8, то не страшно, работать будет.
|
Здравствуйте! Спасибо за текущее решение.
Столкнулся с почти такой же задачей. Разница тольок в том, что каждый .txt файл лежит в своем подкаталоге каталога Sourсe.(то есть в Source я закидываю не 500 файлов, а 500 папок с файлами) И до них программа не добирается. Какой код поможет решить такую задачу? Спасибо! |
Цитата:
|
Имеется папка(Source), которая содержит подпапки с файлами. каждая подпапка имеет свое уникальное имя. Количество папок меняется от раза к разу.
в кажой подпапке лежит 1(один) txt файл. содержимое и имя всех txt-файлов каталога одинаковое. Имеется txt-файл(List), который содержит уникальные строки. Количество строк в txt-файле List всегда не меньше(>=) количества txt-файлов в каталоге Source. Задача: в последнюю строку каждого txt-файла по всему дереву каталога добавить уникальную строку из списка list, то есть каждый файл должен получить уникальную строку. если количество txt-файлов в каталоге меньше, чем строк в List. то, программа остановится после того как модифицирует последний файл. надеюсь, такого описания достаточно?) |
Очень актуально догадываюсь что надо ввести небольшие изменения. буду благодарен за помощь.
|
Цитата:
|
Вариант который я пробовал указан во втором сообщении темы, но я уже уже писал что он не справляется с моей задачей. к счастью это не моя курсовая, и я далек от разработки. но логика подсказывает что изменения требуются небольшие.
|
Цитата:
script.ps1 Код:
$fld = 'd:\source' |
YuS_2, Спасибо! пока не пропускае запуск powershell. думаю разберусь и попробу.
|
Не удается найти параметр соответствующий имени параметра 'файл'
Все написано как есть, папки лежат в source, в них txt. Не пойму куда смотреть? |
|
Да, разумеется. у меня они в формате таком:
имена верные, лежат по адресам PHP код:
|
viktor1981lob, скопируйте сюда результирующее содержимое окна консоли PowerShell, обрамив его тэгом code (а не тэгом php).
|
Код:
Get-ChildItem : Не удается найти параметр, соответствующий имени параметра "file". |
Цитата:
А пока, просто замените эту строку: Цитата:
Код:
$arr_file = dir $fld -filter *.txt -rec|?{!$_.psiscontainer} |
Цитата:
большое всем человеческое спасибо, заменил и все сработало как надо. |
viktor1981lob, тем не менее, лучше зараз обновить PowerShell до наиболее свежей версии — там много подобных «вкусных плюшек».
|
Время: 07:57. |
Время: 07:57.
© OSzone.net 2001-