Как я могу изменить значение путем расчета в CSV-файл с Powershell - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть этот CSV-файл (у которого нет заголовка):

001;0
002;7
003;192
004;72

Используя powershell (для целей автоматизации), Мне нужно уменьшить на 1 значение второго столбца , поэтому вывод должен быть следующим:

001;-1
002;6
003;191
004;71

Я не могу найти никакого решения, не добавив заголовок в файл (что делается с этим кодом ).

Ниже я сейчас нахожусь в борьбе между двумя трубами.

$input = "input.csv"
$output = "output.csv"

Import-CSV $input |  | Export-CSV -Path $output -NoTypeInformation

Спасибо!

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Не следует использовать $input в качестве самоопределяемой переменной, потому что это Автоматическая c Переменная в PowerShell.

Это может быть способом достижения желаемого :

$inputFile  = "input.csv"
$outputFile = "output.csv"

$result = switch -Wildcard -File $inputFile {
    '*;*' {
        $item, $value = $_ -split ';', 2
        '{0};{1}' -f $item, ([int]$value - 1)
    }
}
$result | Set-Content -Path $outputFile

Полученный файл:

001;-1
002;6
003;191
004;71
0 голосов
/ 26 февраля 2020

Это только одна строка:

$file = 'path to .csv'

Get-Content $file | % { $x = $_ -split ';'; $y = (([int]($x[1]))-1).ToString(); "$($x[0]);$($y)"; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...