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 :

Récupérer une partie d'un nom de fichier pour l'exploiter dans une variable [Batch]


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
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut Récupérer une partie d'un nom de fichier pour l'exploiter dans une variable
    Bonjour à tous,

    je débute un peu en scripting et je cherche à automatiser le plus possible la mise à jour de certaines applications par GPO, notamment Firefox que je vais prendre ici en exemple.

    J'ai écris un petit script qui fonctionne très bien mais j'aimerai le faire évoluer.

    Voici le script aujourd'hui :
    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
    @ECHO off
    REM **** Indiquer ici la version de Firefox a installer.
    REM **** Ce numero est verifie au demarrage de l'ordinateur.
    REM **** Le fait de changer le numero provoquera une mise a jour.
    SET VERSION=63.0
    
    REM **** Indiquer ici le chemin complet vers l'executable d'installation de Firefox
    SET INSTALLSERVER=\\mon.serveur\mon.dossier\MozillaFirefox
    
    REM **** Indiquer ici le chemin complet vers le fichier de configuration INI
    SET INIFILE=\\mon.serveur\mon.dossier\MozillaFirefox\MozillaFirefox.ini
    
    
    REM **** ================================= ****
    REM **** NE PAS TOUCHER AU CODE CI-DESSOUS ****
    REM **** ================================= ****
    
    REM **** Detection de la precedente version x86 de Firefox sur le poste
    IF EXIST "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" GOTO :x86Uninstall
    IF NOT EXIST "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" GOTO :x64CheckVersion
    
    :x64CheckVersion
    REM **** Detection de la version x64 de Firefox si presente sur le poste
    IF EXIST "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt" GOTO :end1
    IF NOT EXIST "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt" GOTO :x64Install
    
    :x86Uninstall
    REM **** Desinstallation de la precedente version x86 de Firefox
    ECHO Ancienne version x86 de Firefox detectee.
    ECHO Desinstallation en cours...
    taskkill.exe /f /im firefox.exe
    "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" -ms
    ECHO Desinstallation de la precedente version x86 de Firefox termine.
    GOTO :x64Install
    
    :x64Install
    REM **** Installation de la nouvelle version x64 de Firefox
    ECHO Installation de la nouvelle version de Firefox en cours...
    "%INSTALLSERVER%\Firefox Setup %VERSION%.exe" /S /INI=%INIFILE%
    ECHO %VERSION% > "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt"
    ECHO Installation de la nouvelle version de Firefox terminee.
    ECHO Copie des fichiers de config dans le dossier local...
    XCOPY %INSTALLSERVER%\autoconfig.js "%PROGRAMFILES%\Mozilla Firefox\defaults\pref" /C /Y
    XCOPY %INSTALLSERVER%\mozilla.cfg "%PROGRAMFILES%\Mozilla Firefox" /C /Y
    ECHO Copie des fichiers de config dans le dossier local terminee.
    GOTO :end2
    
    :end1
    ECHO Derniere version de Firefox deja present, installation non necessaire.
    GOTO :eof
    
    :end2
    ECHO Fin de l'installation.
    GOTO :eof
    
    :eof
    En gros :
    - je renseigne manuellement au début de mon script le numéro de version de Firefox à installer dans la variable %VERSION%
    - je demande au script de vérifier la présence d'un fichier spécifique nommé depuis cette fameuse variable créé lors d'une précédente exécution :
    si le fichier est présent = pas d'installation
    si le fichier n'est pas présent = installation
    - une fois l'installation terminée, le script créé un fichier nommé avec le numéro de version en cours.

    J'aimerai que mon script lise le nom du fichier exécutable se trouvant dans le dossier et récupère le numéro de version présent dans le nom pour le mettre dans la variable %VERSION% sachant que :
    - le nom de l'exécutable peut se présenter comme ceci : Firefox Setup 63.0.exe ou Firefox Setup 63.0.1.exe
    - il faut donc que le script récupère les caractères situés entre les chaines "Firefox Setup " et ".exe"
    - il n'y aura qu'un exécutable dans le dossier : on supprime l'ancien exécutable lorsque l'on place le nouveau
    - le reste du script doit fonctionner comme il fonctionne maintenant : création d'un fichier nommé avec le numéro de version présent dans la variable %VERSION% qui servira de condition à l'installation du programme.

    En fouillant à droite et à gauche, j'arrive à lister correctement le contenu de mon répertoire en affichant que ce qui m'intéresse avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir /b | findstr Firefox.Setup
    Mais c'est tout...

    Pouvez-vous m'aider ?

    Merci d'avance !

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut
    Bon et bien finalement j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FOR /F "delims=" %%i IN ('DIR /B %INSTALLSERVER% ^| FINDSTR Firefox.Setup') DO SET TEMPVERSION=%%i
    SET VERSION=%TEMPVERSION:~14,-4%
    En modifiant le code, ça donne 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
    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
    @ECHO off
    
    REM **** Indiquer ici le chemin complet vers l'executable d'installation de Firefox
    SET INSTALLSERVER=\\mon.serveur\mon.dossier\MozillaFirefox
    
    REM **** Indiquer ici le chemin complet vers le fichier de configuration INI
    SET INIFILE=\\mon.serveur\mon.dossier\MozillaFirefox\MozillaFirefox.ini
    
    
    REM **** ================================= ****
    REM **** NE PAS TOUCHER AU CODE CI-DESSOUS ****
    REM **** ================================= ****
    
    REM **** Detection de la version de Firefox a installer
    FOR /F "delims=" %%i IN ('DIR /B %INSTALLSERVER% ^| FINDSTR Firefox.Setup') DO SET TEMPVERSION=%%i
    SET VERSION=%TEMPVERSION:~14,-4%
    ECHO Version %VERSION% disponible
    
    REM **** Detection de la precedente version x86 de Firefox sur le poste
    IF EXIST "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" GOTO :x86Uninstall
    IF NOT EXIST "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" GOTO :x64CheckVersion
    
    :x64CheckVersion
    REM **** Detection de la version x64 de Firefox si presente sur le poste
    IF EXIST "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt" GOTO :end1
    IF NOT EXIST "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt" GOTO :x64Install
    
    :x86Uninstall
    REM **** Desinstallation de la precedente version x86 de Firefox
    ECHO Ancienne version x86 de Firefox detectee.
    ECHO Desinstallation en cours...
    taskkill.exe /f /im firefox.exe
    "%PROGRAMFILES(X86)%\Mozilla Firefox\uninstall\helper.exe" -ms
    ECHO Desinstallation de la precedente version x86 de Firefox termine.
    GOTO :x64Install
    
    :x64Install
    REM **** Installation de la nouvelle version x64 de Firefox
    ECHO Installation de la nouvelle version %VERSION% de Firefox en cours...
    "%INSTALLSERVER%\Firefox Setup %VERSION%.exe" /S /INI=%INIFILE%
    ECHO %VERSION% > "%PROGRAMFILES%\Mozilla Firefox\%VERSION%.txt"
    ECHO Installation de la version %VERSION% de Firefox terminee.
    ECHO Copie des fichiers de config dans le dossier local...
    XCOPY %INSTALLSERVER%\autoconfig.js "%PROGRAMFILES%\Mozilla Firefox\defaults\pref" /C /Y
    XCOPY %INSTALLSERVER%\mozilla.cfg "%PROGRAMFILES%\Mozilla Firefox" /C /Y
    ECHO Copie des fichiers de config dans le dossier local terminee.
    GOTO :end2
    
    :end1
    ECHO Derniere version %VERSION% de Firefox deja present, installation non necessaire.
    GOTO :eof
    
    :end2
    ECHO Fin de l'installation.
    GOTO :eof
    
    :eof

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/04/2017, 19h07
  2. [Batch] Supprimer une partie d'un nom de fichier a partir de la fin
    Par wayikacewenok dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 27/01/2016, 11h59
  3. Réponses: 6
    Dernier message: 25/11/2014, 10h22
  4. Recuperer le nom des onglets pour les mettre dans une colonne
    Par nico4566 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/03/2011, 17h23
  5. Récupérer une partie d'un nom de fichier
    Par ben_harper dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 25/06/2008, 07h19

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