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 :

Call problème de syntaxe [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut Call problème de syntaxe
    Bonjour a tous,

    Voici mon souci, je dois exécuter un batch pour installer des programmes, sauf que ceux-ci sont régulièrement mis à jour et donc je dois modifier mon script en fonction de versions et je ne peux pas changer le nom de la mise à jour, celui-ci vient avec son nom et son niveau de version (ex : xxxxxx-9999-x64.exe ou xxxxxx-9999.exe).

    Je souhaite l'optimiser mon batch pour ne pas le changer à chaque mise à jour.

    Dans mon batch j'initialise une variable qui donne le chemin + le nom de l’exécutable (ex : set Sft="d:\misajour\xxxxxx-9999-x64.exe") ceci finctionne quand je fait un call.

    je sais que la parie xxxxxx- ne varie jamais, mais 9999 qui correspond au niveau de version oui, et -x64.exe peut varier en fonction du poste à installer (rien ou 32 ou 64 bit)

    Si je modifie ma variable ex : set Sft="d:\misajour\xxxxxx-9999-x64.exe" en ex : set Sft="d:\misajour\xxxxxx-*-x64.exe" j' l'erreur "fichier inconnu" quand je fait un call %sft% car au lieu call d:\misajour\xxxxxx-9999-x64.exe de j'ai call d:\misajour\xxxxxx-*-x64.exe ... et la je seche.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Sft="d:\misajour\xxxxxx-9999-x64.exe"
    call %sft%

    ça c'est OK

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Sft="d:\misajour\xxxxxx-*-x64.exe"
    call %sft%
    c'est pas OK

    Comment contourner le problème

    Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Par défaut
    Bonjour,

    Avez-vous tenté quelque chose comme :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set sft=for %f in (d:\misajour\xxxxxx-*-x64.exe)
    call %sft%

  3. #3
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut
    Bonjour,

    Merci mais non cela ne fonctionne pas j'ai comme réponse à set sft=for %f in (E:\Logiciels\Gfinance*-x64.exe)
    call E:\Logiciels\Gfinance*-x64.exe
    au lieu de E:\Logiciels\Gfinance-0620-x64.exe

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Par défaut
    Question bête mais dans ton E:\Logiciels\ plusieurs versions existent au même endroit ?
    par exemple :
    E:\Logiciels\Gfinance-0610-x64.exe
    E:\Logiciels\Gfinance-0620-x64.exe
    etc...

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Dans un fichier de commande batch le % du paramètre doit être doublé %%f

    Mais je pense que vous êtes sur la bonne voie, je reviendrai si besoin.

  6. #6
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut
    Citation Envoyé par Incorporated Voir le message
    Question bête mais dans ton E:\Logiciels\ plusieurs versions existent au même endroit ?
    par exemple :
    E:\Logiciels\Gfinance-0610-x64.exe
    E:\Logiciels\Gfinance-0620-x64.exe
    etc...
    oui il peut y avoir
    E:\Logiciels\Gfinance-0610-x64.exe
    E:\Logiciels\Gfinance-0610-x32.exe ou E:\Logiciels\Gfinance-0610.exe

    en fonction des version à installer

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Par défaut
    Citation Envoyé par michel.r06 Voir le message
    oui il peut y avoir
    E:\Logiciels\Gfinance-0610-x64.exe
    E:\Logiciels\Gfinance-0610-x32.exe ou E:\Logiciels\Gfinance-0610.exe

    en fonction des version à installer
    Serait-il possible d'avoir une capture avec la liste des fichiers à l'intérieur ?

    Parce qu'imaginons que 2 fichiers matchs avec E:\Logiciels\Gfinance-*-x64.exe cela expliquerait pourquoi ceci ne fonctionne pas, il faut que votre formule corresponde qu'à un seul fichier

  8. #8
    Membre averti
    Inscrit en
    Juin 2013
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 44
    Par défaut
    Citation Envoyé par Incorporated Voir le message
    Bonjour,

    Avez-vous tenté quelque chose comme :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set sft=for %f in (d:\misajour\xxxxxx-*-x64.exe)
    call %sft%
    même avec %% cela ne fonctionne pas

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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