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

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена текста одного файла, текстом из другого файла

Новый участник


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

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


Доброго времени суток!
Заранее извиняюсь, если такая тема уже была, сходу не смог найти.
Есть файл file1.txt с содержимым
Код: Выделить весь код
Старый текст блаблабла Старый текст2 блаблабла Старый текст3 и т.д.
Есть файл file2.txt с содержимым (строк несколько тысяч)
Код: Выделить весь код
Старый текст=Новый текст
Старый текст2=Новый текст2
Старый текст3=Новый текст3
и т.д. построчно
Задача:
Заменить в file1.txt все вхождения текста левой части в file2.txt на правую. Я новичок в этом и буду очень признателен за помощь.

Отправлено: 00:20, 10-03-2017

 

Ветеран


Contributor


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

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


ninjaman,
Цитата:
Есть файл file1.txt с содержимым
Из приведенного примера не ясно, что за файл: там очень длинная строка ( без символов cr+lf), или это нормальный текстовый файл. При очень длинных строках Ваша задача средствами СMD не решается. Опять же, будут проблемы при обработке строк, содержащих символы ! ( ) и многие другие. Кстати, а в какой кодировке файлы? ИМХО, эту задачу лучше (надёжнее и, похоже, эффективнее по времени исполнения) сделать в vbs.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 10:42, 10-03-2017 | #2



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

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


Новый участник


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

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


megaloman, Извиняюсь, неправильно написал. 1 файл имеет xml формат
Код: Выделить весь код
<main_form>
 <form id="1">
      <param param1="Старый текст" param2="Старый текст3" />
      <param param1="Старый текст2" />
 </form>
 <form id="2">
      <param param1="Старый текст3" />
      <param param1="Старый текст4" />
 </form>
</main_form>
(param1, param2 - для примера, на их месте может быть все что угодно.), а второй простой построчный текст. Кодировки везде UTF-8.

Отправлено: 12:05, 10-03-2017 | #3


Ветеран


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

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


ninjaman, в таком случае, упаковывайте образец файлов 1 и 2 в архив и прикладывайте к сообщению. Кстати, обычно файл 2 должен быть отнюдь не в виде «Старый текст=Новый текст», а в виде «Путь в файле xml=новое значение» или попросту файл xml. Что это за xml — файл 1?

Отправлено: 14:11, 10-03-2017 | #4


Новый участник


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

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


Вложения
Тип файла: rar example.rar
(1.8 Kb, 9 просмотров)

Iska, Там именно так (Старый текст=Новый текст). Это переводы к одной игре. Таких файлов много. Пример приложил.

Отправлено: 15:40, 10-03-2017 | #5


Ветеран


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

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


ninjaman, теперь покажите весь SocialActionInfo.xml и все:
Цитата ninjaman:
Таких файлов много »
Хочу посмотреть на них. Упакуйте в архив и выложите на RGhost или Яндекс.Диск.

Отправлено: 16:14, 10-03-2017 | #6


Новый участник


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

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


Iska, Он весь и есть. Вот именно в таком виде как я выложил и надо заменить текст. В остальных файлах принцип тот же, только названия другие.

Отправлено: 19:25, 10-03-2017 | #7


Ветеран


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

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


Вот я бы и хотел на них поглядеть.

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

На PowerShell:
Скрытый текст
Код: Выделить весь код
$sSourceFile = 'C:\Мои проекты\0050\SocialActionInfo.txt'
$sDestFile   = 'C:\Мои проекты\0050\SocialActionInfo.xml'

$cPatterns = Get-Content -Path $sSourceFile -Encoding UTF8 -ReadCount 0
$sContent  = [System.IO.File]::ReadAllText($sDestFile, [System.Text.Encoding]::UTF8)

$cPatterns[1..$cPatterns.Length] | ForEach-Object -Process {
    $cPattern = $_ -split '='
    $sContent = $sContent.Replace($cPattern[0], $cPattern[1])
}

Set-Content -Path $sDestFile -Encoding UTF8 -Value $sContent
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:36, 10-03-2017 | #8


Новый участник


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

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


Iska, Спасибо огромное!!! Все работает)) А Задача - просто контент перевести для игрового сайта.

Отправлено: 00:59, 11-03-2017 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Множественная замена текста в файлах текстом из другого файла Delleter Скриптовые языки администрирования Windows 4 16-06-2017 05:16
CMD/BAT - [решено] Замена текста из одного файла в другом blackeangel Скриптовые языки администрирования Windows 6 20-11-2015 11:07
CMD/BAT - [решено] Запуск одного bat файла из другого root13 Скриптовые языки администрирования Windows 4 28-10-2013 15:30
VBS/WSH/JS - [решено] Замена текста из другого файла ul9 Скриптовые языки администрирования Windows 46 28-10-2012 04:01
CMD/BAT - [решено] Вызов одного пакетного файла из другого Solitude Скриптовые языки администрирования Windows 2 24-02-2009 18:47




 
Переход