Мне нужен кусок powershell-кода для поиска и замены определенной строки внутри текстового файла. В моем примере я хочу заменить 23-06-2016 'на '24 -06-2016'. Приведенный ниже сценарий делает эту работу:Loop over array
$original_file = 'file.old'
$destination_file = 'file.new'
(Get-Content $original_file) | Foreach-Object {
$_ -replace '23-06-2016', '24-06-2016' `
} | Out-File -encoding default $destination_file
Как поиск/замена изменение строки Я хочу перебрать массив дат, которые могли бы выглядеть следующим образом:
$dates = @("23-06-2016","24-06-2016","27-06-2016")
Я попытался использовать
$original_file = 'file.old'
$destination_file = 'file.new'
foreach ($date in $dates) {
(Get-Content $original_file) | Foreach-Object {
$_ -replace 'date', 'date++' `
} | Out-File -encoding default $destination_file
}
На первом этапе дату «23 -06-2016» следует заменить на «24 -06-2016», а на втором этапе дату «24 -06-2016» следует заменить на «27 -06-2016.
Поскольку мой скрипт не работает, я ищу совет.
Спасибо @braintist! Есть только незначительная ошибка в вашем определении из $ дат, я думаю, что точка с запятой вместо запятой должна использоваться для разделения пар друг от друга: '$ dates = @ { " 23-06-2016 "=" 24-06-2016" ; "24-06-2016" = "27-06-2016" } ' –
@PhilU. кричит, да, я обновил. Фактически, когда вы помещаете их в отдельные строки, как я, никакого другого разделителя не требуется. Если вы поместите пары ключ/значение в ту же строку, что и другие, то используется двоеточие. Хороший улов! – briantist