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 des fichiers .url à partir d'un bookmarks.html


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut Créer des fichiers .url à partir d'un bookmarks.html
    Bonjour à tous,

    J'aimerais faire un script qui à partir d'un unique fichier bookmarks.html me crée autant de fichiers .url que de bookmarks de la façon suivante :

    A chaque ligne dans le fichier bookmarks.html, du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DT><A HREF="http://www.dpreview.com/" ADD_DATE="1323365640" PRIVATE="0" TAGS="photo ">www.dpreview.com</A>
    j'aimerais créer un fichier .url , dont le nom de fichier est le nom qui se trouve entre les balises <A> </A>). Ici ça donnerait www.dpreview.com.url

    Le fichier .url doit avoir pour contenu par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [InternetShortcut]
    URL=http://www.dpreview.com/
    Comment faire un script pour générer tous ces fichiers .url ?

    Un grand merci d'avance à tous! Je m'en sors pas!
    Bejjj

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Bon ça doit pas être bien compliqué de générer 100 fichiers avec un batch à partir d'un fichier HTML qui contient 100 lignes

    Mais vraiment j'arrive pas.... QUelqu'un a une idée pour moi ? Un grand merci !!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Vraiment je n'y arrive pas...

    Si quelqu'un a la bonté de m'aider........

    Quel langage utiliser sous Windows XP ?
    (pas envie de m'aventurer dans C etc.)
    En .bat ça irait ? En vbscript sinon ?


    Il faudrait quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Fichier1 := "c:/bookmarks.html"
    For chaque ligne Ligne1 de Fichier1
    Do
        Link1:= récupérer dans Ligne1 le texte juste après A HREF="
        Nom1:= récupérer dans Ligne1 le texte entre <A HREF> et </A>
        Creer nouveau fichier de nom Nom1 +".url"
        Ecrire dans ce fichier le contenu suivant :
             [InternetShortcut]
             URL=Link1
        Fermer le fichier
    End
    Quelqu'un saurait-il me transcrire ça en vrai code ?

  4. #4
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Bonjour,

    En batch c'est relativement simple. En vbs certainement aussi.

    En batch tu as juste besoin de la commande for dont l'aide en ligne (for /?) ou de nombreux posts sur ce forum pourront t'aider.

    Essaye d'écrire une première version et on t'aidera ensuite à la terminer.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Merci Drizzt [Drone38] pour ta réponse !

    En fait les boucles FOR ne me posent pas de problème.

    Ce qui me pose problème : comment extraire d'une ligne HTML ce qui se trouve entre HREF=" et le " ?
    Comment extraire ce qui se trouve entre les balises <A HREF .... > et </A> ?
    Comment mettre ça dans une variable et créer un nouveau fichier ayant ce nom là...
    C'est tout ça qui me pose problème.

    Auriez vous une idée.

    Un grand grand merci d'avance!

  6. #6
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    Citation Envoyé par bejjj Voir le message
    Ce qui me pose problème : comment extraire d'une ligne HTML ce qui se trouve entre HREF=" et le " ?
    Comment extraire ce qui se trouve entre les balises <A HREF .... > et </A> ?
    Comment mettre ça dans une variable et créer un nouveau fichier ayant ce nom là...
    C'est tout ça qui me pose problème.
    Si c'est le bookmarks de firefox, tu peux filtrer avec findstr "HREF=" et le bon tokens de for, et pour mettre en variable, c'est la commande set.

    Sinon, il faut utiliser gnu sed ou équivalent.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Wahh...
    Je ne m'en sortirai pas!

    Quelqu'un aurait il la bonté de m'aider ?

    Un grand merci!

  8. #8
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Un début de piste qu'il te restera à approfondir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ::@echo off
    for /f "tokens=2" %%i in ('findstr "HREF=" bookmarks.html') do call :link %%i
    pause
    goto :eof
    
    :link
    echo %~2
    goto :eof

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut A
    Merci beaucoup minnesota !!

    La dernière étape qui me reste à régler est la suivante : à partir d'une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <DT><A HREF="http://www.meetup.com/" ADD_DATE="1322855328" PRIVATE="0" TAGS="personal ">Agissez, apprenez, partagez, changez - Meetup</A>
    la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2" %%i in ('findstr "HREF=" bookmarks.html')
    me récupère le lien qui se trouve après HREF= et le met dans une variable. Parfait!

    Comment récupérer, dans une deuxième variable, ce qui se trouve entre <A HREF......> et </A> ?

    Un grand grand merci!

  10. #10
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=^<^> tokens=3" %%i in ('findstr "HREF=" bookmarks.html') do echo %%i

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Merci Drizzt !

    J'y suis presque grâce à Minnesota et toi !

    1) Il me reste juste à combiner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=^<^> tokens=3" %%i in ('findstr "HREF=" bookmarks.html') do echo %%i
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2" %%i in ('findstr "HREF=" bookmarks.html')
    dans une seule boucle FOR qui passent 2 variables.
    Comment faire ?

    2) Dernière chose, il faudrait qu'à partir d'un chaine de caractères , j'en fasse un "nom de fichier". Y a t il une fonction qui permet de "nettoyer" une chaine de caractères (enlever les /, les \ , les :, bref enlever tous caractères spéciaux qui feraient que ça ne fait pas un nom de fichier valide) ?


    Un grand merci

    PS : Une fois fini, je fournirai le code complet ici, cela va de soi !

  12. #12
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    tu peux essayer ceci:



    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
    :: untested.bat
    @Echo off
    setlocal enabledelayedexpansion
    
    for /f Tokens^=3^,10delims^=^<^>^" %%i in ('findstr -i "href=" c:\bookmarks.html') do (
       set file=%%j
       :: suppression des caractères réservés..
       for %%t in ("/","\",":",",") do set file=!file:%%~t=!
       >"!file!.url" ^
       (
         echo([InternetShortcut]
         echo(URL=%%i
       ) 
    )
    pause

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Hello !

    Merci !!!

    Tout baigne avec ce batch, sauf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for %%$ in ("/","\",":",",") do set file=!file:%%~$=!
    qui ne supprime pas les caractères indésirables... BIzarre...

    Un grand merci encore

  14. #14
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par bejjj Voir le message

    sauf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for %%$ in ("/","\",":",",") do set file=!file:%%~$=!
    qui ne supprime pas les caractères indésirables... BIzarre...
    réessaye de nouveau, j'ai modifié le code...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Ca marche !!!!

    Un grand merci !

    Bon il y a quelques centaines de bookmarks qui passent pas dans le lot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Syntaxe du nom de fichier, de répertoire ou de volume incorrecte.
    Y a t il moyen d'effectuer une action de ce genre, si erreur :
    Ca m'aidera à voir où se trouve le probleme...

    (Bon effectivement y a plein de caractères pas très agréables qui passent quand même, et du coup en tant que "nom de fichier", le système doit pas aimer)

  16. #16
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par bejjj Voir le message
    Bon il y a quelques centaines de bookmarks qui passent pas dans le lot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Syntaxe du nom de fichier, de répertoire ou de volume incorrecte.


    Y a t il moyen d'effectuer une action de ce genre, si erreur :
    Ca m'aidera à voir où se trouve le probleme...
    tu peux alimenter ta boucle par les autres caractères réservés "<" ">" "|" "?" ...par contre le signe asterisque '*' te posera encore quelques problèmes..

    pour débugger tu peux mettre à "@echo on"

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Oui j'ai essayé d'alimenter la liste de caractères mais ceux-ci posent problème :

    ":" ok

    "*" problème
    "=" problème ("==" ne marche pas)
    """ problème pour les guillemets ( """" semble marcher)

  18. #18
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    pour la substitution des caractères tu peux consulter ce post

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut
    Pour le * c'est réglé, ouf !

    Reste à régler le =, ça ne marche pas!

  20. #20
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Citation Envoyé par bejjj Voir le message
    PS : Une fois fini, je fournirai le code complet ici, cela va de soi !
    Oui, mais comment tu vas faire si c'est pas toi qui le fais ?

Discussions similaires

  1. Créer des fichiers excel à partir d'une feuille et d'une liste
    Par chmouf dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2014, 21h57
  2. [WD-2010] Macro pour créer des fichiers Word à partir d'un fichier "maître"
    Par VinceVBA dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/09/2013, 10h52
  3. Réponses: 11
    Dernier message: 29/01/2012, 01h38
  4. Comment créer un fichier TEXT à partir d'une page HTML ?
    Par Zebulon777 dans le forum VBScript
    Réponses: 0
    Dernier message: 17/09/2010, 15h23
  5. [CR] Version nécessaire pour créer des fichiers DSR ?
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/11/2003, 10h01

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