Скрипт PowerShell для чтения Excel и записи в текстовый файл - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь написать скрипт в Power Shell, чтобы прочитать значение первого столбца в Excel, найти значение в текстовом файле и заменить это значение значением во втором столбце файла Excel. Я новичок в Power Shell. Пожалуйста помоги. Ниже приведен код:

$excel = Import-Csv -Path C:\Users\abc\Desktop\newnbc.csv
foreach ($ex in $excel)
{
    $name = $ex.first  
    $match = Get-Content -Path 'C:\Users\abc\Desktop\all.txt'
    foreach ($ma in $match)
    {
        if ($match | %{$_ -replace $ex.first,$ex.last})
        {
          ((Get-Content -Path C:\Users\abc\Desktop\all.txt -Raw) -replace $name,$ex.last) | Set-Content -Path C:\Users\abc\Desktop\all.txt
        }

    } 
}

1 Ответ

0 голосов
/ 06 января 2020

Судя по информации из вашего комментария, похоже, что входной CSV-файл представляет собой файл с разделителями-пробелами, что-то вроде этого:

first last
i3-chq-nbc-dt-comcleanup-cmd i3-chq-nbc-dt-d-com-cleanup

Конечно, если символ разделителя является чем-то отличным от пробела измените значение параметра -Delimiter.

$fileName = 'C:\Users\abc\Desktop\all.txt'
# get the original content of the text file BEFORE the loop
$content  = Get-Content -Path $fileName -Raw
# then, import the csv with the replacement strings and start replacing the content
Import-Csv -Path 'C:\Users\abc\Desktop\newnbc.csv' -Delimiter ' ' | ForEach-Object {
    $content = $content -replace $_.first, $_.last
}
# finally, save the updated content to file
$content | Set-Content -Path $fileName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...