2016-05-18 3 views
0

У меня есть этот код для удаления возвратной каретки (^M) символов, которые будут поглощены Unix. Приведенная ниже кода работает, но я не могу понять, как:DOS to UNIX conversion

  1. петли через ряд томов CSV (5), эффективно используя цикл
  2. заменить существующие файлы с новыми файлами

    $csv = (Get-Content -Raw *.csv) -replace "`r`n","`n" 
    [io.file]::WriteAllText('C:\Powershell\test.csv', $csv) 
    
+1

Это в unix? В bash часто используется программа dos2unix – Steve

+0

Это в Windows. Я знаю о dos2unix, но я в процессе перехода от партии к powershell. Спасибо за ваш вклад. – Krante

+1

@Steve Не совсем. У него уже есть преобразование. Вопрос заключается в том, как применить его к нескольким файлам. –

ответ

1

Вы отправили все CSV-файлы и объединили их в один выходной файл. Вам необходимо перечислить и обработать файлы по отдельности. Также нет необходимости собирать содержимое в переменной. Просто подключите измененный контент к Set-Content.

Get-ChildItem 'C:\some\folder' -Filter *.csv | ForEach-Object { 
    (Get-Content -Raw $_.FullName) -replace "`r`n", "`n" | Set-Content $_.FullName 
} 
+0

Он отлично работает. спасибо – Krante