IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

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


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Par défaut Modification d'une chaîne de caractères dans un txt zippé
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    @echo off
    D:
    cd Fichiers
    cd Scripts
    cd AMUNDI
    SET monrep="D:\Fichiers\Scripts\AMUNDI"
    for /r "%monrep%" %%i in (*.zip) do set MonZip=%%~nxi
    "C:\Program Files\7-zip\7z.exe" e -r %MonZip% *.txt
    rename Index.txt %MonZip%.txt
    set file=*.txt
    set oldstr=99100
    set newstr=99150
    For %%A in (
      "do until Wsh.stdin.atendofstream    "
      "  o="%oldstr%" :  n="%newstr%"      "
      "  ch=replace(wsh.stdin.readline,o,n)"
      "  Wsh.echo ch                       "
      "loop"
    ) do >>__.vbs echo\%%~A
    type %file% |>'.txt cscript /nologo __.vbs && move ' %file%
    del __.vbs
    del %MonZip%.txt
    rename '.txt Index.txt
    "C:\Program Files\7-zip\7z.exe" u %MonZip% *.txt
    del Index.txt
    pause
    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 pour votre aide.

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Par défaut
    Je me permets de faire un petit up.

    Merci d'avance

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mars 2014
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Mars 2014
    Messages : 158
    Par défaut
    je pense que c'est ton do
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for /r "%monrep%" %%i in (*.zip) do set MonZip=%%~nxi
    "C:\Program Files\7-zip\7z.exe" e -r %MonZip% *.txt
    rename Index.txt %MonZip%.txt
    set file=*.txt
    set oldstr=99100
    set newstr=99150
    auquel tu devrait rajouter des parenthèse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for /r "%monrep%" %%i in (*.zip) do (set MonZip=%%~nxi
    "C:\Program Files\7-zip\7z.exe" e -r %MonZip% *.txt
    rename Index.txt %MonZip%.txt
    set file=*.txt
    )
    set oldstr=99100
    set newstr=99150
    et pourquoi utiliser %%~nxi mais pas simplement %%i?

Discussions similaires

  1. [MySQL] Remplacer une chaîne de caractères dans une base de données
    Par Furius dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/11/2013, 21h06
  2. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51
  3. Réponses: 7
    Dernier message: 14/12/2005, 09h53
  4. Remplacer une chaîne de caractères dans une base
    Par Furius dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/10/2005, 23h03
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo