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 :

Obenir la position actuelle d'un élément sur un total d'éléments [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2020
    Messages : 36
    Par défaut Obenir la position actuelle d'un élément sur un total d'éléments
    Bonjour à tous,

    J'ai fait un script batch qui sauvegarde certaines données de chaque profil utilisateur local sur un disque dur secondaire, à 2 conditions : que le profil ne figure pas dans une liste d'exclusion et qu'il ait bien un dossier nominatif sur le disque dur secondaire.

    Pour chaque profil en cours de sauvegarde (répondant aux conditions évoquées ci-dessus), je voudrais afficher sa position actuelle parmi les profils restants à sauvegarder.

    Par exemple: "Sauvegarde du profil (1 / 10) : Thomas"

    Je n'ai aucune idée de comment je peux faire cela, mes connaissances étant assez limitées.

    Voici mon code :

    Code Batch : 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
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set BackupDest=D:\backup
     
    for /f "tokens=*" %%I in ('dir /a:d-h /b "%HomeDrive%\users\*" ^| findstr /b /e /i /l /v /g:"%~dp0exclude_users.txt"') do if exist "%BackupDest%\%%~nI\" (
     
    echo -----------------------------------------
    echo      Sauvegarde du profil : %%~nXI
    echo -----------------------------------------
    echo
     
    xcopy "%%~nXI\Desktop" "%BackupDest%\%%~nXI\Desktop\" /e /i /y
    xcopy "%%~nXI\Documents" "%BackupDest%\%%~nXI\Documents\" /e /i /y
     
    )
     
    pause
    exit

    Toute aide m'aiderait énormément.

    Merci !

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 : 549
    Par défaut
    Bonjour,

    Pour assigner un chiffre à chaque profil, il suffit d'incrémenter une variable à chaque tour de boucle, avec la commande set /a
    Pour obtenir le nombre maximal de profils à traiter il faut une deuxième boucle for comme celle que tu as fait.

    Ca devrait donner ça :

    Code Batch : 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
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    set BackupDest=D:\backup
     
    set profil_max=0
    for /f "tokens=*" %%I in ('dir /a:d-h /b "%HomeDrive%\users\*" ^| findstr /b /e /i /l /v /g:"%~dp0exclude_users.txt"') do if exist "%BackupDest%\%%~nI\" (set /a profil_max+=1)
     
    set index=0
    for /f "tokens=*" %%I in ('dir /a:d-h /b "%HomeDrive%\users\*" ^| findstr /b /e /i /l /v /g:"%~dp0exclude_users.txt"') do if exist "%BackupDest%\%%~nI\" (
     
    set /a index+=1
     
    echo -----------------------------------------
    echo      Sauvegarde du profil (!index! / !profil_max!) : %%~nxI
    echo -----------------------------------------
    echo
     
    xcopy "%%~nxI\Desktop" "%BackupDest%\%%~nxI\Desktop\" /e /i /y
    xcopy "%%~nxI\Documents" "%BackupDest%\%%~nxI\Documents\" /e /i /y
     
    )
     
    pause
    exit

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2020
    Messages : 36
    Par défaut
    Merci. Mais cela me donne l'erreur ": était innatendu" pour la ligne set index=0.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 : 549
    Par défaut
    L'erreur provient des parenthèses que tu veux utiliser dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo      Sauvegarde du profil (!index! / !profil_max!) : %%~nxI

    Soit tu les remplaces par autre chose, soit tu peux les échapper comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo      Sauvegarde du profil ^(!index! / !profil_max!^) : %%~nxI

  5. #5
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2020
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2020
    Messages : 36
    Par défaut
    Merci beaucoup ! Tout fonctionne !

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

Discussions similaires

  1. [Toutes versions] afficher la position actuel du fichier en lecture (wmp
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/12/2009, 19h31
  2. Réponses: 5
    Dernier message: 14/05/2009, 21h47
  3. position de div par random sur onload
    Par innommables dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/03/2009, 14h41
  4. Réponses: 1
    Dernier message: 15/05/2006, 15h49

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