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 :

Extraire une chaine d'une sous-chaine en bat [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut Extraire une chaine d'une sous-chaine en bat
    Bonjour

    Vu ce topic

    J'ai cette chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set li="C:\Users\LT30694\Desktop\CFM\VIEWER_APP_LEAP_1A_OCTOBER.2018_CFM-TP-610-A-S1000D_REF_20181020_143359"
    Je souhaite récupérer l'information qui se trouve en "LEAP_1A" dans une variable et le mois et l'année dans une deuxième variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo %li% ^|findstr /i /r "VIEWER_APP_" ( echo blabla )
    Merci d'avance
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Avec findstr ça va être dur parce qu'il va te retourner toute la variable vu que c'est sur la même ligne!

    Une solution :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    set "li=C:\Users\LT30694\Desktop\CFM\VIEWER_APP_LEAP_1A_OCTOBER.2018_CFM-TP-610-A-S1000D_REF_20181020_143359"
     
    call:extract %li%
     
    exit/b
     
    :extract
    for /f "tokens=5 delims=_" %%a in ('echo %~n1') do set mois=%%a
    for /f "tokens=1 delims=_" %%a in ('echo %~x1') do set an=%%a
    echo %mois%
    echo %an:.=%

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Merci pour ta réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set li="C:\Users\VIEWER_APP_LEAP_1A_OCTOBER.2018_CFM-TP-610-A-S1000D_REF_20181020_143359"
    call:extract %li%
    title Copie des fichiers vers le serveur
    robocopy "%li%" "%folder%\%type%\%type% - %version% - DVD" /E
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    :extract
    for /f "tokens=3 delims=_" %%a in ('echo %~n1') do set moteur=%%a
    for /f "tokens=4 delims=_" %%a in ('echo %~n1') do set type=%%a
    for /f "tokens=5 delims=_" %%a in ('echo %~n1') do set mois=%%a
    for /f "tokens=1 delims=_" %%a in ('echo %~x1') do set an=%%a
    
    set type=%moteur% %type%
    set version=%mois% %an:.=%
    
    goto :eof
    C'est bon?
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    A toi de voir !

    juste 2 remarques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set li="C:\Users\VIEWER_APP_LEAP_1A_OCTOBER.2018_CFM-TP-610-A-S1000D_REF_20181020_143359"
    il est preferable de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set "li=C:\Users\VIEWER_APP_LEAP_1A_OCTOBER.2018_CFM-TP-610-A-S1000D_REF_20181020_143359"
    Comme dans le code que je t'ai proposé !


    Et cette partie :


    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "tokens=3 delims=_" %%a in ('echo %~n1') do set moteur=%%a
    for /f "tokens=4 delims=_" %%a in ('echo %~n1') do set type=%%a
    for /f "tokens=5 delims=_" %%a in ('echo %~n1') do set mois=%%a

    peut-être resumé en :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /f "tokens=3,4,5 delims=_" %%a in ('echo %~n1') do (
        set moteur=%%a
        set type=%%b
        set mois=%%c
    )

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    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
    @echo off
    setlocal enabledelayedexpansion
    cls
    pause
     
    title Parametrage des variables globales
    set "folder=C:\Users\LT30694\Desktop\tempory_files"
     
    for /R "C:\Users\LT30694\Desktop\CFM" %%I in ("*.zip") do (
        title Paramétrage des variables
        call:extract_informations_title_file %%~dpnI
         
        title Extraction des fichiers du %%I
        "C:\Program Files\7-zip\7z.exe" x "%%I" -o"%%~dpnI" -r
         
        robocopy "%%~dpnI" "%folder%\!type!\!type! - !version! - DVD" /E
         
        REM call :suppression
         
    )
     
    pause
    exit
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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