[Batch] Modification d'une chaîne de caractères dans un txt zippé

Modification d'une chaîne de caractères dans un txt zippé [Batch] - Shell/Batch - Programmation

Marsh Posté le 26-02-2014 à 15:55:14    

Bonjour à tous,
 
Mon problème est plutôt simple mais je galère ...
 
Je dois faire un script qui modifie une chaîne de caractère dans un txt qui est dans une archive zip.
 
Jusque là ça va, j'ai fait un script mais qui ne fonctionne que pour un seul zip.
 
Mon problème est que je n'arrive pas à le modifier pour le faire sur 650 zip ...
 
Les fichiers à modifier dans chaque zip s'appelle Index.txt mais sont tous différents les uns des autres et doivent être intégrés dans leur propre dossier zippé de base ...
 
Je sais pas si j'arrive à bien m'exprimer ...
 
Voici le code que j'ai pondu, ça vous aidera déjà à comprendre un peu mieux ce que je veux faire :
 

Code :
  1. @echo off
  2. D:
  3. cd Fichiers
  4. cd Scripts
  5. cd AMUNDI
  6. "C:\Program Files\7-zip\7z.exe" e -r *.zip *.txt
  7. set file=*.txt
  8. set oldstr=99100
  9. set newstr=99150
  10. For %%A in (
  11.   "do until Wsh.stdin.atendofstream    "
  12.   "  o="%oldstr%" :  n="%newstr%"      "
  13.   "  ch=replace(wsh.stdin.readline,o,n)"
  14.   "  Wsh.echo ch                       "
  15.   "loop"
  16. ) do >>__.vbs echo\%%~A
  17. type %file% |>'.txt cscript /nologo __.vbs && move ' %file%
  18. del __.vbs
  19. del Index.txt
  20. rename '.txt Index.txt
  21. SET monrep="D:\Fichiers\Scripts\AMUNDI"
  22. for /r "%monrep%" %%i in (*.zip) do set MonZip=%%~nxi
  23. "C:\Program Files\7-zip\7z.exe" u %MonZip% *.txt
  24. del Index.txt
  25. exit /b


 
Merci de votre aide

Reply

Marsh Posté le 26-02-2014 à 15:55:14   

Reply

Marsh Posté le 26-02-2014 à 18:00:32    

J'ai un peu modifié le script :
 

Code :
  1. @echo off
  2. D:
  3. cd Fichiers
  4. cd Scripts
  5. cd AMUNDI
  6. SET monrep="D:\Fichiers\Scripts\AMUNDI"
  7. for /r "%monrep%" %%i in (*.zip) do set MonZip=%%~nxi
  8. "C:\Program Files\7-zip\7z.exe" e -r %MonZip% *.txt
  9. rename Index.txt %MonZip%.txt
  10. set file=*.txt
  11. set oldstr=99100
  12. set newstr=99150
  13. For %%A in (
  14.   "do until Wsh.stdin.atendofstream    "
  15.   "  o="%oldstr%" :  n="%newstr%"      "
  16.   "  ch=replace(wsh.stdin.readline,o,n)"
  17.   "  Wsh.echo ch                       "
  18.   "loop"
  19. ) do >>__.vbs echo\%%~A
  20. type %file% |>'.txt cscript /nologo __.vbs && move ' %file%
  21. del __.vbs
  22. del %MonZip%.txt
  23. rename '.txt Index.txt
  24. "C:\Program Files\7-zip\7z.exe" u %MonZip% *.txt
  25. del Index.txt
  26. pause
  27. exit /b


 
Mais quand je l'exécute avec les 650 zips dans le dossier ça fonctionne mais que pour le dernier.
 
Ce qui est normal, je suppose qu'il faut faire un boucle pour effectuer ce script sur chaque zip un par un mais je n'y arrive pas ...
 
Merci d'avance.

Reply

Marsh Posté le 14-03-2014 à 18:39:52    

Je me permets de faire un petit up ?
 
Merci d'avance :)

Reply

Marsh Posté le 15-03-2014 à 19:58:56    

Tu es sur quel OS là ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed