Question
Manipulations sur contenu de fichiers en boucle
- Eric_K
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 16 ans 6 mois #5158
par Eric_K
Réponse de Eric_K sur le sujet Re:Manipulations sur contenu de fichiers en boucle
Bonjour Laurent,
Chapeau bas pour ton aide et plusieurs immenses merci pour :
- ta disponibilité
- ta réactivité
- ta patience pour expliquer à un inculte comme moi du script powershell et autres.
Grâce à toi, j'ai donc pu enfin créer un script qui fait ce que j'attends de lui. Le voici :
[code:1]
if (Test-Path c:\test\recap_lots.txt)
{remove-item c:\test\recap_lots.txt}
if (Test-Path c:\test\lots.csv)
{remove-item c:\test\lots.csv}
Dir lot*.txt|
Foreach-Object {$CurrentFilename=$_.FullName;$FName=[IO.Path]::GetFileNameWithoutExtension($_);$_}|
Get-Content |
Where-Object {$_ -notmatch \"(PROPO DE PRIX|Tty :|User :|TOTAL|TVA)\" } |
Foreach-Object {$_ -replace \"\++ \+\|\ \", \"\"} |
Foreach-Object {$_ -replace \"\+ \+ \+ \|\ \", \"\"} |
Foreach-Object {$_ -replace \"\ \|\", \";\"} |
Foreach-Object {$_ -replace \"\|\", \";\"} |
Foreach-Object {$_ -replace \";\ \", \";\"} |
Foreach-Object {$_ -replace \"12D \", \"\"} |
Foreach-Object {$_ -replace \"\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;PU NET TTC;\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;NET TTC;\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;NET HT;\", \"\"} |
where {$_ -ne \"\"} |
Foreach-Object {\"$FName;$_\"} |
Set-Content Recap_lots.txt
(Get-Content recap_lots.txt) |
Foreach-Object {$_ -replace \";;\", \";\"} |
where {$_ -ne \"\"} |
Set-Content Recap_lots.txt
$entete = [System.IO.File]::CreateText(\"c:\test\entete.txt\"«»)
$entete.WriteLine(\"LOT;LIG;CODE CAT;DESIGNATION;NET TTC;\"«»)
$entete.Close()
add-content -path entete.txt -value (get-content Recap_lots.txt)
remove-item lot*.txt
remove-item Recap_lots.txt
move-item entete.txt Lots.csv
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$workbook=$excel.workbooks.open(\"c:\test\Lots_Marchés.xlt\"«»)
remove-item lots.csv
[/code:1]
Je reviendrai certainement faire un tour ici pour encore vous ennuyer avec d'autres scripts car je viens d'intégrer une société qui dispose de scripts vbs. Pour m'exercer, je vais essayer de transformer chacun de ces scripts vbs en scripts powershell.
Encore un immense merci.
A bientôt.
Eric_K.
Chapeau bas pour ton aide et plusieurs immenses merci pour :
- ta disponibilité
- ta réactivité
- ta patience pour expliquer à un inculte comme moi du script powershell et autres.
Grâce à toi, j'ai donc pu enfin créer un script qui fait ce que j'attends de lui. Le voici :
[code:1]
if (Test-Path c:\test\recap_lots.txt)
{remove-item c:\test\recap_lots.txt}
if (Test-Path c:\test\lots.csv)
{remove-item c:\test\lots.csv}
Dir lot*.txt|
Foreach-Object {$CurrentFilename=$_.FullName;$FName=[IO.Path]::GetFileNameWithoutExtension($_);$_}|
Get-Content |
Where-Object {$_ -notmatch \"(PROPO DE PRIX|Tty :|User :|TOTAL|TVA)\" } |
Foreach-Object {$_ -replace \"\++ \+\|\ \", \"\"} |
Foreach-Object {$_ -replace \"\+ \+ \+ \|\ \", \"\"} |
Foreach-Object {$_ -replace \"\ \|\", \";\"} |
Foreach-Object {$_ -replace \"\|\", \";\"} |
Foreach-Object {$_ -replace \";\ \", \";\"} |
Foreach-Object {$_ -replace \"12D \", \"\"} |
Foreach-Object {$_ -replace \"\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;PU NET TTC;\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;NET TTC;\", \"\"} |
Foreach-Object {$_ -replace \";LIG;CODE CAT;DESIGNATION;NET HT;\", \"\"} |
where {$_ -ne \"\"} |
Foreach-Object {\"$FName;$_\"} |
Set-Content Recap_lots.txt
(Get-Content recap_lots.txt) |
Foreach-Object {$_ -replace \";;\", \";\"} |
where {$_ -ne \"\"} |
Set-Content Recap_lots.txt
$entete = [System.IO.File]::CreateText(\"c:\test\entete.txt\"«»)
$entete.WriteLine(\"LOT;LIG;CODE CAT;DESIGNATION;NET TTC;\"«»)
$entete.Close()
add-content -path entete.txt -value (get-content Recap_lots.txt)
remove-item lot*.txt
remove-item Recap_lots.txt
move-item entete.txt Lots.csv
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$workbook=$excel.workbooks.open(\"c:\test\Lots_Marchés.xlt\"«»)
remove-item lots.csv
[/code:1]
Je reviendrai certainement faire un tour ici pour encore vous ennuyer avec d'autres scripts car je viens d'intégrer une société qui dispose de scripts vbs. Pour m'exercer, je vais essayer de transformer chacun de ces scripts vbs en scripts powershell.
Encore un immense merci.
A bientôt.
Eric_K.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Manipulations sur contenu de fichiers en boucle