Я работаю над скриптом, чтобы отформатировать каталог, полный текстовых файлов, и экспортировать их в файлы CSV. Я хочу, чтобы он выполнял поиск и замену в каждом файле, чтобы отформатировать его правильно, экспортировать в CSV с тем же именем, а затем перейти к следующему txt-файлу. У меня есть поиск и замена, но не могу решить, как сохранить каждый текстовый файл с его исходным именем. Что я делаю не так?Сохранение нескольких текстовых файлов в файлы csv
$path = "H:\My Documents\EmailSaveAs\"
$files = Get-ChildItem -Path $path -include *.txt -recurse
echo $files
foreach($file in $files) {
Foreach-Object {
$_ -replace "`r`n`t", "," -replace "\s`r`n", "," -replace "Bytes `r`nOut", "Bytes Out" -replace "`t", "," -replace "Idle-`r`ntimeout", "Idle-timeout" -replace ",#Date", "#Date"
} |
Set-Content $path $(.BaseName + ".csv")
}
Блестящий - это отлично работает! Спасибо огромное! – Dylan
Или вместо того, чтобы читать переменную, задав переменную для нового имени, а затем настроив содержимое, вы можете просто передать его в out-file ala 'Get-Content $ file | Foreach-Object {do stuff} | Out-File ([io.path] :: ChangeExtension ($ file, ".csv")) ' – TheMadTechnician
@ TheMadTechnician, что я изначально написал и сделал бы это так на практике, но я хотел сохранить больше скрипт внутри окна. Таким образом, прокрутка не потребуется, чтобы увидеть интересную часть решения. –