J'ai un dossier de fichiers texte délimités par des tuyaux dont je dois supprimer la dernière colonne. Je ne suis pas expérimenté en PS mais j'ai trouvé assez d'informations grâce à des recherches pour m'aider. J'ai deux morceaux de code. Le premier crée de nouveaux fichiers texte dans mon chemin de destination, conserve le délimiteur de tuyaux, mais ne supprime pas la dernière colonne. Il y a 11 colonnes. Voici ce script :
$ OutputFolder = "D: \ DC_Costing \ Vendor Domain \ CostUpdate_Development_Load_To_IMS"
ForEach ($ File in (Get-ChildItem "D: \ DC_Costing \ Vendor Domain \ CostUpdate_Development_Stage_To_IMS \ *.txt"))
{
(Get-Content $ File) | Foreach-Object { $_.split()[0..9] -join '|' } | Out-File $ OutputFolder \ $ ($ File.Name)
}
Ensuite, ce second code que j'ai essayé crée les nouveaux fichiers texte dans mon chemin de destination, IL se débarrasse de la dernière colonne, mais perd le délimiteur de tuyaux. Ouais.
$ OutputFolder = "D: \ DC_Costing \ Vendor Domain \ CostUpdate_Development_Load_To_IMS"
ForEach ($ File in (Get-ChildItem "D: \ DC_Costing \ Vendor Domain \ CostUpdate_Development_Stage_To_IMS \ *.txt"))
{
Import-Csv $ File -Header col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11 -Delimiter '|' |
Foreach-Object {"{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}" -f $ _.col1, $ _.col2, $ _.col3, $ _.col4, $ _.col5, $ _.col6, $ _.col7, $ _.col8, $ _.col9, $ _.col10} | Out-File $ destination \ $ ($ File.Name)
}
Je n'ai aucune idée de ce que je fais de mal. Je n'ai pas de préférence pour la manière dont je veux que cela soit fait, mais je dois conserver le délimiteur et supprimer la dernière colonne. Toute aide serait grandement appréciée.