Добрый день!
Подскажите, как добавить новый столбец в csv файл с данными полученными из другого столбца?
Есть файл с полными путями к файлам, их временем создания и тд, нужно добавить столбец в котором будет указан новый путь по которому этот файл нужно переместить.
"FullName";"CreationTime";"LastAccessTime";"LastWriteTime";"Length";"Extension"
"\\?\D:\11111\22222\333\44444\filename.ext";"date:time";"date:time";"date:time";"size";".ext"
В новом столбце нужно получить новый путь \\?\D:\11111\to_move\22222\333\44444\
В исходном файле более 2кк строк, поэтому отредактировать через excel не получается.
Пока пользуюсь вот таким скриптом, который создает новый файл, но на файлах с огромным количеством строк процесс очень долгий
$Paths = Import-Csv -Path "C:\temp\OldFiles.csv" -Delimiter ';'
$Paths = $Paths.FullName
$ToMove = "C:\temp\ToMove.csv"
$dataColl = @()
foreach ($Path in $Paths){
foreach ( $Newpath in $Path){
If ($Path.Substring(0,2) -eq "\\") {$Newpath = ("\\?\D:\11111\To_Move" + $Path.Remove(0,12))}
$Destpath = Split-Path $Newpath -Parent
$dataObject = New-Object PSObject
Add-Member -InputObject $dataObject -MemberType NoteProperty -Name "FullName" -Value $Path
Add-Member -InputObject $dataObject -MemberType NoteProperty -Name "NewPath" -Value $Destpath
$dataColl += $dataObject
}
}
$dataColl | Export-Csv -Force -Path $ToMove -Encoding UTF8 -Delimiter ";" -NoTypeInformation -Append