Hi, I’m having a problem I cannot explain and I hope you can help me. I have 2 CSV files with sales of every month of the year, they are structured like so: 6 columns with fixed values and 365 columns, one for every day. Basically the files are the same, but with different values on the days.
Every month I have to import both, select the 6 fixed columns plus the columns with the days of the previous month and export all into 2 new files.
Here is my code:
$Date = (Get-Date).AddMonths(-1)
$DateFormatted = Get-Date $Date -Format "MM-yyyy"
$EV = "C:\ARRIVA_VEN" + "\" + "Vendite ARRIVA " +$DateFormatted + ".csv"
$ER = "C:\ARRIVA_VEN" + "\" + "Rimborsi ARRIVA " +$DateFormatted + ".csv"
[int]$DateNum = Get-Date $Date -Format "MM"
$File = "C:\ARRIVA_VEN"
$FileVendite = Get-ChildItem -Path $File -Include "*Vendite*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
$FileRimborsi = Get-ChildItem -Path $File -Include "*Rimborsi*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
Switch ($DateNum) {
1 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-01-01,2026-01-02,2026-01-03,2026-01-04,2026-01-05,2026-01-06,2026-01-07,2026-01-08,2026-01-09,2026-01-10,2026-01-11,2026-01-12,2026-01-13,2026-01-14,2026-01-15,2026-01-16,2026-01-17,2026-01-18,2026-01-19,2026-01-20,2026-01-21,2026-01-22,2026-01-23,2026-01-24,2026-01-25,2026-01-26,2026-01-27,2026-01-28,2026-01-29,2026-01-30,2026-01-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-01-01,2026-01-02,2026-01-03,2026-01-04,2026-01-05,2026-01-06,2026-01-07,2026-01-08,2026-01-09,2026-01-10,2026-01-11,2026-01-12,2026-01-13,2026-01-14,2026-01-15,2026-01-16,2026-01-17,2026-01-18,2026-01-19,2026-01-20,2026-01-21,2026-01-22,2026-01-23,2026-01-24,2026-01-25,2026-01-26,2026-01-27,2026-01-28,2026-01-29,2026-01-30,2026-01-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
2 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-02-01,2026-02-02,2026-02-03,2026-02-04,2026-02-05,2026-02-06,2026-02-07,2026-02-08,2026-02-09,2026-02-10,2026-02-11,2026-02-12,2026-02-13,2026-02-14,2026-02-15,2026-02-16,2026-02-17,2026-02-18,2026-02-19,2026-02-20,2026-02-21,2026-02-22,2026-02-23,2026-02-24,2026-02-25,2026-02-26,2026-02-27,2026-02-28|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-02-01,2026-02-02,2026-02-03,2026-02-04,2026-02-05,2026-02-06,2026-02-07,2026-02-08,2026-02-09,2026-02-10,2026-02-11,2026-02-12,2026-02-13,2026-02-14,2026-02-15,2026-02-16,2026-02-17,2026-02-18,2026-02-19,2026-02-20,2026-02-21,2026-02-22,2026-02-23,2026-02-24,2026-02-25,2026-02-26,2026-02-27,2026-02-28|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 28; break}
3 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-03-01,2026-03-02,2026-03-03,2026-03-04,2026-03-05,2026-03-06,2026-03-07,2026-03-08,2026-03-09,2026-03-10,2026-03-11,2026-03-12,2026-03-13,2026-03-14,2026-03-15,2026-03-16,2026-03-17,2026-03-18,2026-03-19,2026-03-20,2026-03-21,2026-03-22,2026-03-23,2026-03-24,2026-03-25,2026-03-26,2026-03-27,2026-03-28,2026-03-29,2026-03-30,2026-03-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-03-01,2026-03-02,2026-03-03,2026-03-04,2026-03-05,2026-03-06,2026-03-07,2026-03-08,2026-03-09,2026-03-10,2026-03-11,2026-03-12,2026-03-13,2026-03-14,2026-03-15,2026-03-16,2026-03-17,2026-03-18,2026-03-19,2026-03-20,2026-03-21,2026-03-22,2026-03-23,2026-03-24,2026-03-25,2026-03-26,2026-03-27,2026-03-28,2026-03-29,2026-03-30,2026-03-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
4 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-04-01,2026-04-02,2026-04-03,2026-04-04,2026-04-05,2026-04-06,2026-04-07,2026-04-08,2026-04-09,2026-04-10,2026-04-11,2026-04-12,2026-04-13,2026-04-14,2026-04-15,2026-04-16,2026-04-17,2026-04-18,2026-04-19,2026-04-20,2026-04-21,2026-04-22,2026-04-23,2026-04-24,2026-04-25,2026-04-26,2026-04-27,2026-04-28,2026-04-29,2026-04-30|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-04-01,2026-04-02,2026-04-03,2026-04-04,2026-04-05,2026-04-06,2026-04-07,2026-04-08,2026-04-09,2026-04-10,2026-04-11,2026-04-12,2026-04-13,2026-04-14,2026-04-15,2026-04-16,2026-04-17,2026-04-18,2026-04-19,2026-04-20,2026-04-21,2026-04-22,2026-04-23,2026-04-24,2026-04-25,2026-04-26,2026-04-27,2026-04-28,2026-04-29,2026-04-30|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 30; break}
5 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-05-01,2026-05-02,2026-05-03,2026-05-04,2026-05-05,2026-05-06,2026-05-07,2026-05-08,2026-05-09,2026-05-10,2026-05-11,2026-05-12,2026-05-13,2026-05-14,2026-05-15,2026-05-16,2026-05-17,2026-05-18,2026-05-19,2026-05-20,2026-05-21,2026-05-22,2026-05-23,2026-05-24,2026-05-25,2026-05-26,2026-05-27,2026-05-28,2026-05-29,2026-05-30,2026-05-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-05-01,2026-05-02,2026-05-03,2026-05-04,2026-05-05,2026-05-06,2026-05-07,2026-05-08,2026-05-09,2026-05-10,2026-05-11,2026-05-12,2026-05-13,2026-05-14,2026-05-15,2026-05-16,2026-05-17,2026-05-18,2026-05-19,2026-05-20,2026-05-21,2026-05-22,2026-05-23,2026-05-24,2026-05-25,2026-05-26,2026-05-27,2026-05-28,2026-05-29,2026-05-30,2026-05-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
6 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-06-01,2026-06-02,2026-06-03,2026-06-04,2026-06-05,2026-06-06,2026-06-07,2026-06-08,2026-06-09,2026-06-10,2026-06-11,2026-06-12,2026-06-13,2026-06-14,2026-06-15,2026-06-16,2026-06-17,2026-06-18,2026-06-19,2026-06-20,2026-06-21,2026-06-22,2026-06-23,2026-06-24,2026-06-25,2026-06-26,2026-06-27,2026-06-28,2026-06-29,2026-06-30|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-06-01,2026-06-02,2026-06-03,2026-06-04,2026-06-05,2026-06-06,2026-06-07,2026-06-08,2026-06-09,2026-06-10,2026-06-11,2026-06-12,2026-06-13,2026-06-14,2026-06-15,2026-06-16,2026-06-17,2026-06-18,2026-06-19,2026-06-20,2026-06-21,2026-06-22,2026-06-23,2026-06-24,2026-06-25,2026-06-26,2026-06-27,2026-06-28,2026-06-29,2026-06-30|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 30; break}
7 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-07-01,2026-07-02,2026-07-03,2026-07-04,2026-07-05,2026-07-06,2026-07-07,2026-07-08,2026-07-09,2026-07-10,2026-07-11,2026-07-12,2026-07-13,2026-07-14,2026-07-15,2026-07-16,2026-07-17,2026-07-18,2026-07-19,2026-07-20,2026-07-21,2026-07-22,2026-07-23,2026-07-24,2026-07-25,2026-07-26,2026-07-27,2026-07-28,2026-07-29,2026-07-30,2026-07-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-07-01,2026-07-02,2026-07-03,2026-07-04,2026-07-05,2026-07-06,2026-07-07,2026-07-08,2026-07-09,2026-07-10,2026-07-11,2026-07-12,2026-07-13,2026-07-14,2026-07-15,2026-07-16,2026-07-17,2026-07-18,2026-07-19,2026-07-20,2026-07-21,2026-07-22,2026-07-23,2026-07-24,2026-07-25,2026-07-26,2026-07-27,2026-07-28,2026-07-29,2026-07-30,2026-07-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
8 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-08-01,2026-08-02,2026-08-03,2026-08-04,2026-08-05,2026-08-06,2026-08-07,2026-08-08,2026-08-09,2026-08-10,2026-08-11,2026-08-12,2026-08-13,2026-08-14,2026-08-15,2026-08-16,2026-08-17,2026-08-18,2026-08-19,2026-08-20,2026-08-21,2026-08-22,2026-08-23,2026-08-24,2026-08-25,2026-08-26,2026-08-27,2026-08-28,2026-08-29,2026-08-30,2026-08-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-08-01,2026-08-02,2026-08-03,2026-08-04,2026-08-05,2026-08-06,2026-08-07,2026-08-08,2026-08-09,2026-08-10,2026-08-11,2026-08-12,2026-08-13,2026-08-14,2026-08-15,2026-08-16,2026-08-17,2026-08-18,2026-08-19,2026-08-20,2026-08-21,2026-08-22,2026-08-23,2026-08-24,2026-08-25,2026-08-26,2026-08-27,2026-08-28,2026-08-29,2026-08-30,2026-08-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
9 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-09-01,2026-09-02,2026-09-03,2026-09-04,2026-09-05,2026-09-06,2026-09-07,2026-09-08,2026-09-09,2026-09-10,2026-09-11,2026-09-12,2026-09-13,2026-09-14,2026-09-15,2026-09-16,2026-09-17,2026-09-18,2026-09-19,2026-09-20,2026-09-21,2026-09-22,2026-09-23,2026-09-24,2026-09-25,2026-09-26,2026-09-27,2026-09-28,2026-09-29,2026-09-30|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-09-01,2026-09-02,2026-09-03,2026-09-04,2026-09-05,2026-09-06,2026-09-07,2026-09-08,2026-09-09,2026-09-10,2026-09-11,2026-09-12,2026-09-13,2026-09-14,2026-09-15,2026-09-16,2026-09-17,2026-09-18,2026-09-19,2026-09-20,2026-09-21,2026-09-22,2026-09-23,2026-09-24,2026-09-25,2026-09-26,2026-09-27,2026-09-28,2026-09-29,2026-09-30|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 30; break}
10 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-10-01,2026-10-02,2026-10-03,2026-10-04,2026-10-05,2026-10-06,2026-10-07,2026-10-08,2026-10-09,2026-10-10,2026-10-11,2026-10-12,2026-10-13,2026-10-14,2026-10-15,2026-10-16,2026-10-17,2026-10-18,2026-10-19,2026-10-20,2026-10-21,2026-10-22,2026-10-23,2026-10-24,2026-10-25,2026-10-26,2026-10-27,2026-10-28,2026-10-29,2026-10-30,2026-10-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-10-01,2026-10-02,2026-10-03,2026-10-04,2026-10-05,2026-10-06,2026-10-07,2026-10-08,2026-10-09,2026-10-10,2026-10-11,2026-10-12,2026-10-13,2026-10-14,2026-10-15,2026-10-16,2026-10-17,2026-10-18,2026-10-19,2026-10-20,2026-10-21,2026-10-22,2026-10-23,2026-10-24,2026-10-25,2026-10-26,2026-10-27,2026-10-28,2026-10-29,2026-10-30,2026-10-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
11 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-11-01,2026-11-02,2026-11-03,2026-11-04,2026-11-05,2026-11-06,2026-11-07,2026-11-08,2026-11-09,2026-11-10,2026-11-11,2026-11-12,2026-11-13,2026-11-14,2026-11-15,2026-11-16,2026-11-17,2026-11-18,2026-11-19,2026-11-20,2026-11-21,2026-11-22,2026-11-23,2026-11-24,2026-11-25,2026-11-26,2026-11-27,2026-11-28,2026-11-29,2026-11-30|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-11-01,2026-11-02,2026-11-03,2026-11-04,2026-11-05,2026-11-06,2026-11-07,2026-11-08,2026-11-09,2026-11-10,2026-11-11,2026-11-12,2026-11-13,2026-11-14,2026-11-15,2026-11-16,2026-11-17,2026-11-18,2026-11-19,2026-11-20,2026-11-21,2026-11-22,2026-11-23,2026-11-24,2026-11-25,2026-11-26,2026-11-27,2026-11-28,2026-11-29,2026-11-30|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 30; break}
12 {
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-12-01,2026-12-02,2026-12-03,2026-12-04,2026-12-05,2026-12-06,2026-12-07,2026-12-08,2026-12-09,2026-12-10,2026-12-11,2026-12-12,2026-12-13,2026-12-14,2026-12-15,2026-12-16,2026-12-17,2026-12-18,2026-12-19,2026-12-20,2026-12-21,2026-12-22,2026-12-23,2026-12-24,2026-12-25,2026-12-26,2026-12-27,2026-12-28,2026-12-29,2026-12-30,2026-12-31|
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Tipo_supporto,Codice,Etichetta_del_prodotto,Tratta,Tariffa,2026-12-01,2026-12-02,2026-12-03,2026-12-04,2026-12-05,2026-12-06,2026-12-07,2026-12-08,2026-12-09,2026-12-10,2026-12-11,2026-12-12,2026-12-13,2026-12-14,2026-12-15,2026-12-16,2026-12-17,2026-12-18,2026-12-19,2026-12-20,2026-12-21,2026-12-22,2026-12-23,2026-12-24,2026-12-25,2026-12-26,2026-12-27,2026-12-28,2026-12-29,2026-12-30,2026-12-31|
Export-CSV -NoTypeInformation -Path $ER
$Giorni = 31; break}
}
(Get-Content $EV).Replace('"', '') | Set-Content $EV
(Get-Content $EV).Replace(',', ';') | Set-Content $ER
(Get-Content $ER).Replace('"', '') | Set-Content $EV
(Get-Content $ER).Replace(',', ';') | Set-Content $ER
The code runs smoothly, the only problem is that the two output files are exactly the same, while the 2 starting fiels are different, it seems that while elaboring $FileRimborsi is in fact using $Filevendite.
I tried commeting the part where it processes $FileVendite on may and it worked perfectly on the other one. Do I have to set a Start-Sleep between the 2 executions?
I tried running just this just to import export and as I suspected the files are being processed correctly
$File = "C:\ARRIVA_VEN"
$EV = "C:\ARRIVA_VEN" + "\" + "T" +"test" + ".csv"
$ER = "C:\ARRIVA_VEN" + "\" + "S" +"test" + ".csv"
$FileVendite = Get-ChildItem -Path $File -Include "*Vendite*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
$FileRimborsi = Get-ChildItem -Path $File -Include "*Rimborsi*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
Write-Output $FileVendite
Write-Output $FileRimborsi
Import-CSV -Path $FileVendite -Delimiter ';' |
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Export-CSV -NoTypeInformation -Path $ER
I also created 2 sample files and tried the select-object
$File = "C:\ARRIVA_VEN"
$EV = "C:\ARRIVA_VEN" + "\" + "T" +"test" + ".csv"
$ER = "C:\ARRIVA_VEN" + "\" + "S" +"test" + ".csv"
$FileVendite = Get-ChildItem -Path $File -Include "*T*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
$FileRimborsi = Get-ChildItem -Path $File -Include "*S*" -Recurse |
Sort-Object LastWriteTime |
Select-Object -Last 1
Write-Output $FileVendite
Write-Output $FileRimborsi
Import-CSV -Path $FileVendite -Delimiter ';' |
Select-Object Data1,Data2 |
Export-CSV -NoTypeInformation -Path $EV
Import-CSV -Path $FileRimborsi -Delimiter ';' |
Select-Object Data1,Data2 |
Export-CSV -NoTypeInformation -Path $ER
It also works correctly, so why my original file won’t?