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 :

Boucle FOR /F à plusieurs paramètre [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Boucle FOR /F à plusieurs paramètre
    Bonjour,

    J'utilise la boucle FOR /F pour envoyer des commandes sur plusieurs machines (Appel d'un fichier texte avec mes machines).

    Ex:
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f %%i in (listepc.txt) do ( 
    xcopy \\MONIPRESEAU\DOSSIER\DOSSIER\VNCSeven\ultravnc.ini \\%%i\c$\Progra~1\ORL\ /Y 
    )

    Maintenant je voudrais renommer les machines (ordre de nom de machine chronologique), pour cela j'utilise netdom et ça fonctionne... pour une seul machine:

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    netdom renamecomputer OLDNAME /newname:NEWNAME /userd:DOMAINE\administrateur /passwordd:****** /usero:OLDNAME\administrateur /passwordo:******* /force

    Mais sachant que je veux faire ça sur plusieurs machines je veux éviter d'avoir 20x la même ligne avec juste les noms qui changent...

    Existe t'il un moment d'avoir recours à plusieurs variable %% dans FOR /F ? Comme ça je crée un fichier texte avec les anciens noms de machines et un fichier texte avec les nouveaux noms.
    Seulement, j'ai peur aussi que par exemple le deuxième nom de machine dans le fichier texte OLDNAME pique le premier nom de machine de NEWNAME.



    Je pense que j'essaye de me compliquer la vie, existe t-il une autre commande plus intéressante ?

    Merci!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Bonjour,

    FOR /F parcourt un fichier ligne par ligne, et permet de découper les lignes comme tu le désires :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /f "tokens=1-2 delims= " %%i in (listepc.txt) do (
    netdom renamecomputer %%i /newname:%%j /userd:DOMAINE\administrateur /passwordd:****** /usero:OLDNAME\administrateur /passwordo:******* /force
    )



    Ton fichier texte devra être de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OLDNAME NEWNAME
    OLDNAME NEWNAME
    OLDNAME NEWNAME
    ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    D'accord, je comprend pour l'utilisation du token et du delims mais dans le code, la variable %%j va pointer ou ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Si ton fichier texte est de la forme : OLDNAME NEWNAME

    %%i va pointer sur OLDNAME et %%j va pointer sur NEWNAME.

  5. #5
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci, je vais tester ça demain !!

  6. #6
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci!

    Ça fonctionne très très bien! J'avais vue toutes les commandes avec token, delim et autre içi:

    https://ss64.com/nt/for_f.html


    Mais je n'avais pas fait le rapprochement.

    J’essaye de me former au batch, vbs et plus, j'ai imprimé tout le cours sur devellopez.com mais la meilleur façon reste toujours de tester les commandes !

    Merci encore.

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

Discussions similaires

  1. [Python 3.X] Boucle for avec plusieurs variables et tableau ?
    Par marcoxavier dans le forum Général Python
    Réponses: 2
    Dernier message: 15/06/2017, 20h57
  2. [XL-2010] boucle for sur plusieurs cellules
    Par kingjon dans le forum Excel
    Réponses: 6
    Dernier message: 02/06/2016, 15h10
  3. Boucle for appelant plusieurs variables
    Par charleslaidi dans le forum Shell et commandes GNU
    Réponses: 23
    Dernier message: 05/05/2015, 22h51
  4. Boucle for et plusieurs if enchainés --> comment optimiser le code?
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2012, 17h39
  5. Boucle FOR avec 2 paramètres
    Par dinozo13 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 17/11/2008, 17h34

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