Powershell: конвертировать каждый файл в папке в формат UTF-8 csv - PullRequest
1 голос
/ 01 мая 2020

Мне нужен скрипт для конвертирования Excel в CSV-формат UTF-8. Я думаю, что это можно сделать на Powershell, но я не могу. Вы видите, где ошибка? Заранее большое спасибо.


$configFiles = Get-ChildItem  "c:\HR\test"

foreach ($file in $configFiles) {
    $a = -join ("c:\HR\test", "\", $file)
    Get-Content $a | Set-Content -path -Encoding utf8 $a
}

1 Ответ

0 голосов
/ 01 мая 2020

Вы можете использовать удивительный модуль Дуга Финка, чтобы сделать это: https://github.com/dfinke/ImportExcel

Чтобы установить его: Install-Module ImportExcel

Тогда вы можете сделать что-то вроде этого , Обратите внимание, что Out-File имеет несколько различных вариантов кодирования для UTF8: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-file?view=powershell-5.1#parameters

param(
    $excelFilesDir = (Get-ChildItem $PSScriptRoot\excel_files),
    $csvFilesDir = "$PSScriptRoot\csv_files"
)

# NOTE: I had to supply the path to the module on my system. You may not have to.
Import-Module "<ABSOLUTE>:\<PATH>\<TO>\<MODULE>\ImportExcel" -Force
# Import-Module ImportExcel 

if ( (Test-Path -Path $csvFilesDir) -eq $false) { 
    New-Item -Path $csvFilesDir -ItemType Directory -Force 
}
foreach ($file in $excelFilesDir) {
    Import-Excel $file.FullName | `
        ConvertTo-Csv -NoTypeInformation | `
            Out-File -FilePath "$csvFilesDir\$($file.Name)" -Encoding utf8 -Force
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...