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 :

if en batch ne fonctionne pas ?


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
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut if en batch ne fonctionne pas ?
    Bonjour à tous,

    Voici mon p'tit problème, je souhaite créer une boucle qui pour une liste de PCs contenus dans un fichier texte "liste_amaj.txt":

    - stoppe un service OCS Inventory

    - remplace un fichier sur dans le C:\

    - redémarre le service

    - renseigne un fichier log "liste_majok"

    Voici donc mon p'tit batch assez simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for /F %%i in (\\server\temp\liste_amaj.txt) do (
        if exist "\\%%i\c$\Programdata\OCS Inventory NG\Agent\" (
            SC \\%%i stop "OCS Inventory Service"
            xcopy /Y "\\server\temp\ocsinventory.ini" "\\%%i\c$\Programdata\OCS Inventory NG\Agent\"
            ping 127.0.0.1 //ce ping évite de redémarrer le service trop vite au cas ou le fichier n'est pas tout à fait enregistré...
            SC \\%%i start "OCS Inventory Service"
            @echo %%i >> \\server\temp\liste_majok.txt
        )
    )
    pause
    Le truc, c'est que le fichier "liste_majok" est renseigné à chaque fois, quand bien même le PC ne répond pas au ping et que l'action n'a pas été effectuée, concrètement on rentre dans la boucle quoiqu'il se passe. Pourtant c'est bien là le rôle de mon "if exist"

    A tout hasard, le problème ne viendrait-il pas du fait que tout ne soit pas sur la même ligne?

    J'ai par exemple fait un test avec un pc hors ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if exist "\\PChorsligne\C$\toto" (echo tata)
    => après le timeout la commande se passe sans me retourner "tata", si je refais le test avec un pc en ligne j'ai bien mon tata qui s'affiche...

    Merci d'avance pour votre aide!

    Arnaud

  2. #2
    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
    Je ne pas de problème avec ton code, ca fonctionne comme tu l'attend.

    Ton fichier "liste_amaj.txt" ne contient pas de parenthèses fermantes ou autres caractères spéciaux ?
    Essaie de le réduire à une ou deux lignes simple pour voir si tu as toujours le problème.

  3. #3
    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
    Au faite, ta ligne n'est pas tel quelle j'imagine sinon ça me fait une erreur.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    ping 127.0.0.1 //ce ping évite de redémarrer le service trop vite au cas ou le fichier n'est pas tout à fait enregistré...

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut
    Bonjour,
    Merci pour ta réponse.
    Non effectivement j'ai "commenté" la ligne sur le forum seulement.
    Comme j'ai précisé, j'ai fait le test simplifié avec mon echo toto et ça fonctionne, mais as-tu testé avec le script complet ... ?
    A+

  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
    Oui complet, j'ai juste modifier les chemins nécessaires.

    As-tu simplifié le fichier pour tester. Voir as le recréer en partant d'un nouveau.

    C'est tellement archaïque Batch, pas très robuste

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Par défaut
    Bonjour
    Merci pour ta réponse, je ne souhaite pas "recréer" le batch, je referais exactement la même chose...
    Et je ne peux pas le "simplifier" davantage (d'ailleurs, pourquoi l'aurais-je complexifié?)

    Le batch est peut-être pas très puissant, mais c'est néanmoins "logique" comme tout language ou instruction machine, donc il y a bien un problème quelque part c'est pourquoi je sollicite des experts ;-)

Discussions similaires

  1. [Batch] batch ne fonctionne pas sous xp
    Par tonyx376 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 02/12/2015, 10h05
  2. [Batch] Batch qui ne fonctionne pas sous xp
    Par stefanelle dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 01/12/2010, 17h40
  3. pourquoi ce batch ne fonctionne pas sous le dos Reel
    Par phil59110 dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 28/06/2009, 17h20
  4. Mon batch SAS ne fonctionne pas
    Par bar_79 dans le forum Administration et Installation
    Réponses: 8
    Dernier message: 22/12/2008, 17h33
  5. Script qui ne fonctionne pas via un fichier Batch ?
    Par bilou95 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/12/2007, 16h18

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