PDA

Показать полную графическую версию : [решено] Замена строк из файла строками из файла в файле


bcubbs@fb
24-01-2013, 16:28
Наверное точнее тему назвать не возможно было бы:)
Такая задача: из файла А находит нужные строки из файла Б, заменяет их строками из файла Ц и записывает все в новый файл Д


$Orig = Get-Content -Path C:\Users\Home\Desktop\orig.txt
$Copy = Get-Content -Path C:\Users\Home\Desktop\copy.txt
$Js = Get-Content -Path C:\Users\Home\Desktop\1.txt
$Js -replace $Orig, $Copy | Set-Content -Path C:\Users\Home\Desktop\out.txt


Не создает файл out.txt в указанном месте....
в чем может быть проблема? С powershelloм раньше не работал.

Kazun
24-01-2013, 16:46
$variable = "~0"
$Orig = Get-Content -Path C:\Users\Home\Desktop\orig.txt
$Copy = Get-Content -Path C:\Users\Home\Desktop\copy.txt -Encoding UTF8
$Js = Get-Content -Path C:\Users\Home\Desktop\1.txt

$Orig = $Orig -replace "::varible::",$variable
$Copy = $Copy -replace "::: variable:::",$variable


for($i=0;$i -le $orig.count;$i++)
{
$js=$js -replace $orig[$i],$copy[$i]
}

$js | Out-File Result.txt

bcubbs@fb
24-01-2013, 17:02
не появился Result.txt ...
даже если прописать Оut-File -Path C:\Users\Home\Desktop\Result.txt

подправил variable

$variable = "~0" $Orig = Get-Content -Path C:\Users\Home\Desktop\orig.txt
$Copy = Get-Content -Path C:\Users\Home\Desktop\copy.txt -Encoding UTF8
$Js = Get-Content -Path C:\Users\Home\Desktop\1.txt
$Orig = $Orig -replace "::variable::",$variable
$Copy = $Copy -replace ":::variable:::",$variable
for($i=0;$i -le $Orig.count;$i++) {
$Js=$Js -replace $Orig[$i],$Copy[$i]
}
$Js | Out-File -Path C:\Users\Home\Desktop\Result.txt

Kazun
24-01-2013, 17:14
Как запускаете?

bcubbs@fb
24-01-2013, 17:19
запускаю файл new.sh с этим кодом

Kazun
24-01-2013, 17:22
Скрипты в PowerShell должны иметь расширение ps1 и не забыть установить политику выполнения скриптов перед запуском(Set-ExecutionPolicy RemoteSigned).

bcubbs@fb
24-01-2013, 17:22
Да, уже погуглил:) Спасибо за помощь!

Окончательный рабочий код


$variable = "~0"
$orig = Get-Content -Path C:\Users\Home\Desktop\orig.txt
$copy = Get-Content -Path C:\Users\Home\Desktop\copy.txt -Encoding UTF8
$js = Get-Content -Path C:\Users\Home\Desktop\1.txt

$orig = $orig -replace "::variable::",$variable
$copy = $copy -replace ":::variable:::",$variable


for($i=0;$i -le $orig.count;$i++)
{
$js=$js -replace $orig[$i],$copy[$i]
}

$js | Out-File C:\Users\Home\Desktop\Result.txt




© OSzone.net 2001-2012