Преобразование из CSV в TSV с изменениями содержимого - PullRequest
1 голос
/ 14 апреля 2020

Мне нужно изменить файл CSV на TSV, а также удалить разрывы строк и двойные кавычки.

Вот код:

$filePath = "C:\Users\at1704171\Documents\Infinity Scorecard PBIX\converter"
$mkdir = New-Item -ItemType Directory -Force -Path (Join-Path -Path $filePath -ChildPath 'converted')
$files = Get-ChildItem (Join-Path -Path $filePath -ChildPath "*") -Include *.csv
$sep = "`t"
$ext = '.tsv'

foreach($file in $files)
{
    $filename = -Join($mkdir,"\",(Get-Item $file).BaseName,$ext)
        Import-Csv $file |
        ConvertTo-Csv -NoTypeInformation -Delimiter $sep |
        % { $_.Replace("`r"," ").Replace("`n"," ").Replace('"',"") } |
        Out-File -FilePath $filename -Encoding utf8
}

это в основном конвертация файла CSV в TSV, но также удаление разрывов строк и двойных кавычек. Однако я заметил, что в строке есть несколько «табуляций» (`t), поэтому мне нужно было вставить еще одну строку между« Импорт »и« Конвертировать », чтобы заменить эти« табуляции »пробелом

Я не понять, как работает синтаксис, поэтому я буквально скопировал строку ниже «Преобразовать», так как он выполняет ту же функцию и сделал это, но выдает ошибку

$filePath = "C:\Users\at1704171\Documents\Infinity Scorecard PBIX\converter"
$mkdir = New-Item -ItemType Directory -Force -Path (Join-Path -Path $filePath -ChildPath 'converted')
$files = Get-ChildItem (Join-Path -Path $filePath -ChildPath "*") -Include *.csv
$sep = "`t"
$ext = '.tsv'

foreach($file in $files)
{
    $filename = -Join($mkdir,"\",(Get-Item $file).BaseName,$ext)
        Import-Csv $file |
        % { $_.Replace("`t"," ") } | --this is the line I added
        ConvertTo-Csv -NoTypeInformation -Delimiter $sep |
        % { $_.Replace("`r"," ").Replace("`n"," ").Replace('"',"") } |
        Out-File -FilePath $filename -Encoding utf8
}

здесь очень важна чья-либо помощь, спасибо, ребята

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...