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 :

Un batch récursif, oui mais


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut Un batch récursif, oui mais
    Bonjour à tous !

    Jusqu'à maintenant j'arrivais à me débrouiller tout seul pour taper mes .bat mais plus j'ai des idées et moins j'arrive à les concrétiser.
    Heureusement, il y a toujours quelques astuces qui traînent de ci de là sur un forum

    Oui mais...

    Pour camper un peu le décors, j'administre une galerie de photos. Or pour chaque photo il y a un grand nombre de traitements à faire dessus avant de la mettre en ligne.
    J'ai donc créé un petit batch qui me va très bien sauf sur un point:
    Il ne travail que dans un seul répertoire !!!

    Ce que j'aimerai, c'est que une fois les options réglées, le batch s'exécute dans chaque sous répertoires... (désolé si c'est assez confus...).

    Comment faire pour passer dans une variable, tous les répertoires (avec ses sous répertoires) ainsi de suite ???

    Merci.

    PS: Mon "logiciel" ce trouve à l'adresse suivante: >>içi<<

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Gotcha26
    Comment faire pour passer dans une variable, tous les répertoires (avec ses sous répertoires) ainsi de suite ???
    Un exemple de batch généré via ton soft ne serait pas de trop
    Soit tu passes une liste de répertoire mais sa taille max risque potentiellement de poser pb soit tu parcours dynamiquement le répertoire cible.
    Un exemple combinant les 2 approches :
    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
    29
    30
    31
    echo off
     rem makeListeDir.cmd
     rem construit une liste de répertoire ( ceux avec l'attribut non caché ).
     rem %1=répertoire de recherche
    if %1'==' goto error
    set ListeRepertoire=
    for /F "Tokens=*" %%I in ('Dir %1 /AD /B') do set LNom=%%I&call "%LDTOOLS%\MemoriseDir.cmd" 
    Set ListeRepertoire=%ListeRepertoire%
    goto end
    :error
    Echo Erreur
    echo Il manque un parametre
    echo %0 nom_de_repertoire
    pause
    :End
    Set LNom=
    ----------
    echo off
    rem MemoriseDir.cmd
    rem Utilise la variable LNom
    rem Memorise une suite de nom de repertoire dans une variable
    rem les noms sont séparés par le contenu de la variable séparateur
    set Separateur=,
    if not "%ListeRepertoire%"=="" goto nonVide
    set ListeRepertoire=%LNom%
    goto fin
    :NonVide
    set ListeRepertoire=%ListeRepertoire%%Separateur%%LNom%
    :fin
    set separateur=

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Merci pour ta réponse.
    J'essayerai cette manip' dès que possible.


    Mon batch est assez long. C'est une initiative personnelle et je n'ai reçue aucune formation en la matière. Juste aidé par l'aide de Windows et quelques astuces de ci de là.

    En pièces jointes:
    Mon fichier "Setup.bat" contient les variables que l'utilisateur peut modifier.
    Mon fichier "Script.bat" est en fait compiler en .exe et c'est lui qui fait office de "programme".
    [EDIT] Pièces jointes supprimées.

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Le mieux il me semble serait de découpler la saisie des paramètres nécessaires et le traitement à proprement parler.

    Le principe de la recherche récursive rejoind celui sur setup.bat.
    Tu supposes l'OS cible comme étant XP, je n'ai pas vu de test de versions ?

    Tu peux aussi regarder ces qq scripts.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Le mieux il me semble serait de découpler la saisie des paramètres nécessaires et le traitement à proprement parler.
    C'est tout à fait possible

    Citation Envoyé par Laurent Dardenne Voir le message
    Le principe de la recherche récursive rejoind celui sur setup.bat.
    Je n'en ai fait aucun !?!

    Citation Envoyé par Laurent Dardenne Voir le message
    Tu supposes l'OS cible comme étant XP, je n'ai pas vu de test de versions ?
    Je suppose en effet que l'OS cible doit être un Windows. Je ne connais pas l'historique du langage MS-DOS mais mon batch tourne très bien sur XP SP2 et Vista.

    Citation Envoyé par Laurent Dardenne Voir le message
    Tu peux aussi regarder ces qq scripts.
    J'ai bien regardé mais je ne vois pas trop trop le rapport avec mon problème...

  6. #6
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Gotcha26 Voir le message
    J'ai bien regardé mais je ne vois pas trop trop le rapport avec mon problème...
    Je viens de me pencher plus sérieusement sur la question et j'ai trouvé le rapport
    Par contre, j'ai essayer le code:
    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
    29
    30
    31
    echo off
     rem makeListeDir.cmd
     rem construit une liste de répertoire ( ceux avec l'attribut non caché ).
     rem %1=répertoire de recherche
    if %1'==' goto error
    set ListeRepertoire=
    for /F "Tokens=*" %%I in ('Dir %1 /AD /B') do set LNom=%%I&call "%LDTOOLS%\MemoriseDir.cmd" 
    Set ListeRepertoire=%ListeRepertoire%
    goto end
    :error
    Echo Erreur
    echo Il manque un parametre
    echo %0 nom_de_repertoire
    pause
    :End
    Set LNom=
    ----------
    echo off
    rem MemoriseDir.cmd
    rem Utilise la variable LNom
    rem Memorise une suite de nom de repertoire dans une variable
    rem les noms sont séparés par le contenu de la variable séparateur
    set Separateur=,
    if not "%ListeRepertoire%"=="" goto nonVide
    set ListeRepertoire=%LNom%
    goto fin
    :NonVide
    set ListeRepertoire=%ListeRepertoire%%Separateur%%LNom%
    :fin
    set separateur=
    Mais je n'obtiens pas le résultat escompté.


    Je vais essayer de mieux formuler mon besoin...
    Imaginons l'arborescence suivante:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    C:\TEST
    +---1
    |   +---11
    |   |       photo_A.jpg
    |   |       photo_B.jpg
    |   |       photo_C.jpg
    |   |       photo_D.jpg
    |   |       
    |   \---12
    |       +---121
    |       |       photo_A.jpg
    |       |       photo_B.jpg
    |       |       photo_C.jpg
    |       |       photo_D.jpg
    |       |       
    |       +---122
    |       |       photo_A.jpg
    |       |       photo_B.jpg
    |       |       photo_C.jpg
    |       |       photo_D.jpg
    |       |       
    |       \---123
    |               photo_A.jpg
    |               photo_B.jpg
    |               photo_C.jpg
    |               photo_D.jpg
    |               
    \---2
        |   photo_A.jpg
        |   photo_B.jpg
        |   photo_C.jpg
        |   photo_D.jpg
        |   
        +---21
        |       photo_A.jpg
        |       photo_B.jpg
        |       photo_C.jpg
        |       photo_D.jpg
        |       
        \---22
    Il y a des sous répertoires sur plusieurs niveaux.
    Ce que je n'arrive pas faire, c'est faire travailler mon batch dans les sous répertoires qui contiennent des photos, les répertoires ne contenant aucun fichier .jpg seront ignoré.

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gotcha26
    Je n'en ai fait aucun !?!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if exist Script.bat start /max Script.bat
    je pensais a qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for Directory in Directories do start Script %Directory%
    Citation Envoyé par Gotcha26
    J'ai bien regardé mais je ne vois pas trop trop le rapport avec mon problème...
    C'était à titre d'information.

    Quant à ton test l'ajout du switch /S me semble nécessaire
    Je dois dire que je ne me souviens plus de l'objectif de l'exemple cité...

  8. #8
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Merci Mr Laurent, le switch /S pour la commande DIR est une très bonne piste.
    Ca progresse donc !

    Là où ça bloque:
    J'ai mon répertoire d'entrée [%DIRsource%] où se trouve mes fichiers originaux
    J'ai mon répertoire de sortie [%DIRsortie%] où devront aller les résultats des futurs commandes
    L'arborescence de %DIRsortie% et dorénavant identique à %DIRsource%

    J'ai deux fichiers (DIRsource.txt ; DIRsortie.txt) pour l'arborescence de %DIRsource% et %DIRsortie%

    Comment, dans mon batch, à l'intérieur d'une même commande, lire par exemple la ligne x des deux fichiers ???

    Exemple:
    Ligne avant modifications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "nconvert.exe" -q %Qhd% -out jpeg -o %DIRtempo%pwg_high\%%.jpg %resize% -resize %DIMhd% %DIMhd% %DIRsource%\*.jpg
    Ligne souhaitée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "nconvert.exe" -q %Qhd% -out jpeg -o %%a\pwg_high\%%.jpg %resize% -resize %DIMhd% %DIMhd% %%b\*.jpg
    %%a = lecture de %DIRsortie%
    %%b = lecture de %DIRsource%

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Avant d'aller plus loin,
    Citation Envoyé par Gotcha26
    J'ai deux fichiers (DIRsource.txt ; DIRsortie.txt) pour l'arborescence de %DIRsource% et %DIRsortie%
    Quel est leur rôle ? Peut-tu t'en passer ou est-ce une facilité d'adapation du script d'origine ?

  10. #10
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Avant d'aller plus loin,[...]
    Effectivement, avant d'aller plus loin et de risquer de se fourvoyez, je vais essayer de décrire le fonctionnement de mon batch.

    I) L'image
    Le fichier image original sera renommé afin de faire disparaître les caractères spéciaux. Cette opération est réalisée à l'aide d'un logiciel externe. (A voir pour le faire avec un batch...)
    Pour afficher une photo dans ma galerie, il me faut en fait en créer trois
    -La miniature
    -La normale
    -La HD
    Chacune à son propre dossier.
    Toutes les photos sont redimensionnées.
    La normale + la HD contiendront un filigrane.
    La miniature aura ses EXIF supprimés.
    La nom de la miniature contiendra un préfixe.
    La qualité de chaque type d'image sera différente.

    II) Les répertoires & Co
    Ils sont au nombre de deux nouveaux répertoires créés
    -thumbnail (pour la miniature)
    -pwg_high (pour la HD)
    Dans chaque répertoire (y compris à la racine) un fichier "index.php" est ajouté.

    Fonctionnement:
    -Création du dossier temporaire (travail)
    -Création du dossier pwg_high
    -Création du dossier thumbnail
    -Formatage des noms des fichiers images
    -Edition des images HD
    -Edition des images normales
    -Edition des miniatures
    -Adjonction d'un filigrane sur les image HD
    -Adjonction d'un filigrane sur les image normales
    -Copier du fichier index.php dans tous les répertoires
    -Copie de tous les fichiers/répertoires vers le dossier de sortie
    -Purge du dossier temporaire.

    Particularités:
    Mis à part le filigrane, pratiquement tout est modifiable.
    Si certaines question sont trop rébarbatives, le batch peut être programmé pour répondre automatiquement à votre place.

  11. #11
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Quel est leur rôle ? Peut-tu t'en passer ou est-ce une facilité d'adapation du script d'origine ?
    Le répertoire de "sortie" doit contenir (dans un premier temps) la même architecture que le dossier "source".
    Dans chaque sous répertoire devra être créé deux nouveaux sous répertoires (thumbnail + pwg_high).


    Tout en écrivant tout ça je me rend compte qu'il y a sûrement un moyen simple pour faire tout ça.
    Ce n'est pas évident lorsque l'on n'y connaît rien en programmation mais je sens ça va marcher ^^

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gotcha26
    Le répertoire de "sortie" doit contenir (dans un premier temps) la même architecture que le dossier "source".
    ça j'avais compris.
    Je que je ne comprend pas c'est le traitement, si j'ai bien compris, en 2 passes :
    1 - lecture de l'arborescence et écriture dans un fichier
    2 - traitement sur chaque entrée lut du fichier précédent

    Pourquoi ne pas itérer sur le répertoire source, l'origine ?
    Le répertoire cible temporaire, la destination, étant persistant tout au long du traitement :

    %Cible%\%DirCourant% %source\%DirCourant%\
    ___________________%source\%DirCourant%\pwg_high
    ___________________%source\%DirCourant%\thumbnail


    Seul change le nom du répertoire courant.

  13. #13
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    J'ai fait qq tests et suis resté accroché dessus
    Le problème avec dir /S est qu'on ne récupère pas le nom du répertoire courant mais le nom du chemin complet. Donc pour le concaténer avec le chemin cible il faut pouvoir analyser le nom du chemin complet et avec les batchs c'est pas gagné...

    Du coup je suis partis sur la simulation de Findfisrt/Findnext, c'est à dire qu'on se déplace dans chaque répertoire tout en connaissant le nom du répertoire courant sans le chemin d'accés complet.

    A partir de là l'autre pb qui se présente est la gestion de la pile en batch, heureusement que le couple d'instruction SetLocal/EndLocal existe !

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     @echo off
     rem Créer les répertoires de test dans %Temp%\Test
      rem cd %Temp%
      rem md Test
      rem cd test
      rem md D1\sD1\sD2;D2\sD1\sD2;D3\sD1\sD2
    cd %Temp%
    set Source=%Temp%\Test
    set Cible=%Temp%\Test2
    rem Echo debut : %Tempo%
    cd %Source%
    Set Last=%Cible%
    set DirCourant=
    :Recurse
     rem met en place la pile d'appel XP/Vista, W2K ?
     rem On mémorise (empile) les variables locales à partir de ce point
    setlocal
    if not "%DirCourant%"=="" set Last=%Last%\%DirCourant%
     
    for /F "Tokens=*" %%I in ('Dir %CD% /AD /B') do set DirCourant=%%~nxI&CALL :Make 
    goto fin
     
     rem Sous-programme de traitement
     :Make  
      ECHO *DESCENT* info debug
      Call :VisuDebug
     
       rem Se positionne dans le répertoire courant (1) 
      Cd "%DirCourant%"
       rem Crée le répertoire courant dans la cible
      md "%Last%\%DirCourant%"
     
       rem effectue le traitement pour le répertoire courant (%CD%\%DirCourant%) 
      Echo Fait qq chose de ["%CD%"]  vers ["%Last%\%DirCourant%"]
       rem On parcourt les répertoires du répertoire courant
     
      Call :Recurse
       rem On remonte d'un niveau dans l'arborescence, cf(1)
       cd..
     
      :Suite
       rem On rétabli (Dépile) les variables locales de l'appel précédent 
      Endlocal
     
      ECHO *REMONTE* info debug
      rem Call :VisuDebug
      Pause debug
     rem fin du SP
     Goto :eof
    :VisuDebug
     Echo Traitement du répertoire : %CD%\%DirCourant%
     Echo Courant= %DirCourant%
     Echo LAST = %Last%
     Echo --------
     rem fin du SP
    Goto :eof
    :fin
    set DirCourant=
    set Last=
    set Source=
    set Cible=
     rem chaque appel de recurse se terminera ici !!!
    Echo Fin du batch
    Une version sans debug
    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
    29
    30
    31
    32
    33
    34
     @echo off
    set Source=%Temp%\Test
    set Cible=%Temp%\Test2
    cd %Source%
    Set Last=%Cible%
    set DirCourant=
    :Recurse
     rem met en place la pile d'appel XP/Vista, W2K ?
     rem On mémorise (empile) les variables locales à partir de ce point
    setlocal
    if not "%DirCourant%"=="" set Last=%Last%\%DirCourant%
    for /F "Tokens=*" %%I in ('Dir %CD% /AD /B') do set DirCourant=%%~nxI&CALL :Make 
    goto fin
     
     rem Sous-programme de traitement
     :Make  
       rem Se positionne dans le répertoire courant (1) 
      Cd "%DirCourant%"
       rem Crée le répertoire courant dans la cible
      md "%Last%\%DirCourant%"
     
       rem effectue le traitement pour le répertoire courant (%CD%\%DirCourant%) 
      Echo Fait qq chose de ["%CD%"]  vers ["%Last%\%DirCourant%"]
       rem On parcourt les répertoires du répertoire courant
     
      Call :Recurse
      cd..
     
      :Suite
       rem On rétabli (Dépile) les variables locales de l'appel précédent 
      Endlocal
     Goto :eof
    :fin
    Le résultat :
    Fait qq chose de ["C:\Temp\test\D1"] vers ["C:\Temp\Test2\D1"]
    Fait qq chose de ["C:\Temp\test\D1\sD1"] vers ["C:\Temp\Test2\D1\sD1"]
    Fait qq chose de ["C:\Temp\test\D1\sD1\sD2"] vers ["C:\Temp\Test2\D1\sD1\sD2"]
    Fait qq chose de ["C:\Temp\test\D2"] vers ["C:\Temp\Test2\D2"]
    Fait qq chose de ["C:\Temp\test\D2\sD1"] vers ["C:\Temp\Test2\D2\sD1"]
    Fait qq chose de ["C:\Temp\test\D2\sD1\sD2"] vers ["C:\Temp\Test2\D2\sD1\sD2"]
    Fait qq chose de ["C:\Temp\test\D3"] vers ["C:\Temp\Test2\D3"]
    Fait qq chose de ["C:\Temp\test\D3\sD1"] vers ["C:\Temp\Test2\D3\sD1"]
    Fait qq chose de ["C:\Temp\test\D3\sD1\sD2"] vers ["C:\Temp\Test2\D3\sD1\sD2"]
    Il y a peut être plus simple. Par exemple en reprenant ton idée et en générant un fichier contenant qq chose comme :
    C:\Temp\test\D1;C:\Temp\Test2\D1
    C:\Temp\test\D1\sD1;C:\Temp\Test2\D1\sD1
    Utilisé avec une boucle for. En sachant qu'un fichier peut contenir un point-virgule.
    Du coup cela répond à ta précédente question

    ps
    Si tu me dis que c'est tordu je veux bien te croîre...

  14. #14
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Pourquoi ne pas itérer sur le répertoire source, l'origine ?
    Le répertoire cible temporaire, la destination, étant persistant tout au long du traitement :

    %Cible%\%DirCourant% %source\%DirCourant%\
    ___________________%source\%DirCourant%\pwg_high
    ___________________%source\%DirCourant%\thumbnail


    Seul change le nom du répertoire courant.
    Bonsoir,
    C'est exactement le même conclusion sur laquelle je suis tombée en attend votre réponse

    Les premiers tests sont concluants !!!

    L'astuce est la suivante:
    Je connais le dossier source
    Je connais le dossier de sortie
    Je ne connais pas les sous répertoires

    Comment, dans un fichier texte, remplacer une chaîne connue par une autre (connue aussi) ?
    Tout simplement en cherchant sur le web, je suis tombé sur un petit exe nommé Switch.
    (J'ai perdu la page originale, cela fait plus d'un an que j'avais ce fichier ^^)

    Parce que en faite, la seul inconnue, ce sont mes sous répertoires. Une fois connus, je les passe en variable et le tour est joué !

    Ca remet en cause un peu le fonctionnement de mon batch, mais je sens que je tiens le bon bout.

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Pour la modification de texte tu as aussi cet outil :
    http://www.kik-it.com/downloads/WIN_DOS_PHP_OLD_STUFF/
    Citation Envoyé par Gotcha26
    Parce que en faite, la seul inconnue, ce sont mes sous répertoires.
    Et il resteront du domaine de l'inconnu

  16. #16
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    arf, il n'y a pas de fichier d'aide pour votre outil ???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dir %DIRsource% /AD /B /S >DIRsource.txt
    Dir %DIRsource% /AD /B /S >DIRsortie.txt
    switch DIRsortie.txt %DIRsource% %DIRsortie%
    Ainsi, le nouveau fichier DIRsortie.txt ne contient plus que les sous répertoires
    Ne reste plus qu'à le renomer en DIRsousrep.txt par exemple.

  17. #17
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gotcha26 Voir le message
    arf, il n'y a pas de fichier d'aide pour votre outil ???
    Son exécution sans paramètre affiche les options disponibles.

  18. #18
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Après quelques temps d'absence, je signale juste que mon problème est bel est bien résolu en ceci en employant la méthode précèdement cité à savoir l'utilisation d'une commande "switch.exe" qui va remplacer une chaîne de caractères données par une autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dir %DIRsource% /AD /B /S >DIRsource.txt
    Dir %DIRsource% /AD /B /S >DIRsortie.txt
    switch DIRsortie.txt %DIRsource% %DIRsortie%
    Evidement, ça m'oblige à compiler la commande switch.exe et à créer des fichiers temporaires mais au moins ça fonctionne !

    Merci Monsieur Laurent Dardenne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete imbriquée, oui mais...
    Par zax-tfh dans le forum Requêtes
    Réponses: 6
    Dernier message: 24/03/2005, 02h48
  2. Réponses: 2
    Dernier message: 04/03/2005, 00h23
  3. Création de logiciel, oui, mais quelle base de donnée ?
    Par Acti dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 17/02/2005, 13h41
  4. HomeDB, oui mais comment ?
    Par Gregouz dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/10/2004, 16h27
  5. [APPLET-SERVLET] download oui mais upload non ...
    Par meufeu dans le forum Applets
    Réponses: 7
    Dernier message: 09/08/2004, 15h36

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