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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Cравнения параметров из двух файлов и перенос значений

Ответить
Настройки темы
PowerShell - Cравнения параметров из двух файлов и перенос значений

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


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

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


Изменения
Автор: ZerG666
Дата: 27-10-2018
Есть два файла, порядок строк и их количество не одинаковые, каждая строка начинается с символов $* и заканчивается параметр символом = далее идет значение, задача найти каждый параметр из первого файла во втором, и если он есть, то заменить значением из второго файла, если такого параметра нет во втором файле - перейти к следующему пераметру

Пример строк:

Что есть

$*abnormalStatusInfo-N08_Ogre_Leader_DefDown-description_k=· Reduces Physical Defense and Magical Defense each by 15% for each stack.
$*abnormalStatusInfo-K10_guido_shield-description_k=<font color='#e4f365'>Guido protects himself with magic.</font>
$*abnormalStatusInfo-N12_Elite_WhiteFox_Frozen-description_k=<font color='#e4f365'>Your feet are slowly becoming frozen.</font><br>\n· Reduces Movement Speed by 5%\n· Rooted if stacked 5 times

Что требуется

$*abnormalStatusInfo-N08_Ogre_Leader_DefDown-description_k=· -15% от физ. и маг. защиты при каждом повторении
$*abnormalStatusInfo-K10_guido_shield-description_k=· <font color='#e4f365'>Гвидо защищает себя темной магией.</font>
$*abnormalStatusInfo-N12_Elite_WhiteFox_Frozen-description_k=· <font color='#e4f365'>Ноги понемногу замерзают.</font><br>·\n-5% от скорости движения\nСвязывание после 5 применения

Отправлено: 14:10, 27-10-2018

 

Ветеран


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

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


Код: Выделить весь код
Get-Content 2.txt | Foreach {$f2= @{}} {
    $a,$b = $_.split("=",2)
    $f2[$a]=$b
}

Get-Content 1.txt | Foreach {
    $a,$b= $_.split("=",2)
    if($f2[$a]) {
        "{0}={1}" -f $a,$f2[$a]
    } else {
        $_
    }
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:54, 27-10-2018 | #2



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

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


Ветеран


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

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


Цитата Kazun:
$a,$b= $_.split("=",2) »
Не знал, что тут можно и массив пользовать .

Отправлено: 15:54, 27-10-2018 | #3


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


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

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


Спасибо, в итоге такой скрипт вышел, а что сделать чтоб он сам имена файлов брал из папки, количество не большое, но в ручную каждый лениво
Код: Выделить весь код
$file2 = 'ENG\PetInfo.ENG'
$file1 = 'RUS\PetInfo.ENG'
$file3 = 'RUS_ENG\PetInfo.ENG'

Get-Content $file1 | Foreach {$f2= @{}} {
    $a,$b = $_.split("=",2)
    $f2[$a]=$b
}

Get-Content $file2 | Foreach {
    $a,$b= $_.split("=",2)
    if($f2[$a]) {
        "{0}={1}" -f $a,$f2[$a]
    } else {
        $_
    }
}|set-content $file3 -enc Default

Последний раз редактировалось ZerG666, 27-10-2018 в 16:54.


Отправлено: 16:14, 27-10-2018 | #4


Ветеран


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

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


Код: Выделить весь код
Get-ChildItem 'ENG\*.ENG' | Foreach {
	$file2 = $_.FullName
	$file1 = "C:\RUS\$($_.Name)"
	$file3 = "C:\RUS_ENG\$($_.Name)"

	Get-Content $file1 | Foreach {$f2= @{}} {
		$a,$b = $_.split("=",2)
		$f2[$a]=$b
	}

	Get-Content $file2 | Foreach {
		$a,$b= $_.split("=",2)
		if($f2[$a]) {
			"{0}={1}" -f $a,$f2[$a]
		} else {
			$_
		}
	}|set-content $file3 -enc Default
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:07, 27-10-2018 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Cравнения параметров из двух файлов и перенос значений

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Синтаксис имён и значений параметров реестра Plum Хочу все знать 11 02-07-2018 21:52
2010 - Перенос значений из столбца в строку VanUliK Microsoft Office (Word, Excel, Outlook и т.д.) 14 22-09-2014 23:02
MySQL - [решено] Перенос значений поля из одной базы в другую skeletor Программирование и базы данных 3 21-10-2011 10:19
Установка - перенос файлов и параметров при переходе на Win7 OlegDS478 Microsoft Windows 7 4 05-03-2011 16:16
Перенос файлов и параметров sc0rp Microsoft Windows 2000/XP 4 21-03-2009 00:33




 
Переход