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 :

Créer et utiliser 2 variables pour chaque ligne d'un fichier


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut Créer et utiliser 2 variables pour chaque ligne d'un fichier
    Bonjour à tous,

    j'ai un fichier txt présentant sur chaque ligne un ID et une URL séparés par une tab :

    001 http://www.google.com
    002 http://www.google.fr
    003 http://www.google.be
    004 http://www.google.it

    J'aimerai donc déclarer pour chaque ligne 2 variables (id et url) et ensuite, utiliser le script WGET.EXE afin de télécharger chaque url et de les sauvegarder sous un fichier "temp"
    Appliquer quelques commandes SED.EXE sur ce fichier temp ...
    Et renommer au final ce fichier temp par l'ID correspondant à l'url ...

    Pour tout ce qui est sed et wget, il n'y a pas de problème mais je m'emmèle complètement les pinceaux sur la boucle ... et la génération / utilisation de ces deux variables. J'ai trouvé de nombreux exemple mais je n'arrive jamais à les adapter.

    Auriez-vous une idée ?
    Un grand merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Ok, après quelques heures, j'ai enfin trouvé ... Ce n'est pas très joli mais cela fonctionne :

    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
    @echo off
    
    FOR /F "tokens=1,2 delims= " %%A IN (list.txt) DO CALL :Commande %%A %%B
    
    :Commande
    set id=%1
    set url=%2
    
    wget -O test_1.temp %url%
    
    sed "s/http:\/\//\nhttp:\/\//g" < test_1.temp > test_2.temp
    sed "/http:\/\//!d" < test_2.temp > test_3.temp
    sed -f replace0.sed < test_3.temp > test_4.temp
    sed -f replace1.sed < test_4.temp > test_5.temp
    sed -f replace2.sed < test_5.temp > test_6.temp
    sed -f replace3.sed < test_6.temp > test_7.temp
    sed -f replace4.sed < test_7.temp > test_8.temp
    sed -f replace5.sed < test_8.temp > test_9.temp
    sed "/__http:\/\//!d" < test_9.temp > test_11.temp
    sed "s/__http:/http:/g" < test_11.temp > test_12.temp
    sed "s/.*/%id%;&/g" < test_12.temp > test_13.temp
    
    rename test_13.temp %id%.tempx
    
    for %%a in (*.tempx) do type "%%a">>z_final.csv
    del *.temp
    del *.tempx

Discussions similaires

  1. [WD19] Créer un état pour chaque ligne d'un fichier de données
    Par Térence01 dans le forum WinDev
    Réponses: 6
    Dernier message: 28/05/2014, 10h05
  2. [Batch] Soucis exécution commandes (ping) pour chaque lignes d'un fichier texte
    Par devilsnake88 dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 16/01/2014, 19h12
  3. Concaténation d'un champ supplémentaire pour chaque ligne d'un fichier
    Par saladin443 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 27/05/2013, 12h49
  4. Comment créer des variables pour chaque ligne d'une table
    Par Slyvore dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 24/04/2012, 14h24
  5. Réponses: 1
    Dernier message: 30/11/2009, 15h29

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