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 :

Lettre de disque en fonction du nom de volume [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut Lettre de disque en fonction du nom de volume
    Bonjour,
    Bon, autant être franc, les fichiers Batch ne sont pas mon fort et ni ma tasse de thé/café.

    Pour autant j'ai besoin d'un code très court (style *.bat) que je lancerai à discrétion afin d'attribuer la lettre X à la clé USB dont le nom de volume est Xavier et d'attribuer la lettre M à la clé USB dont le nom de volume est Marc. Une seule des deux clés ou les deux peuvent être présentes.

    Maintenant et pour vous montrer que j'ai cherché des issues, je me suis intéressé à la commande "diskpart" mais il m'impose de passer par une fenêtre "Voulez-vous autoriser cette application à ......." puis entrer la commande "list volume".
    J'ai trouvé aussi la commande "wmic logicaldisk get volumename", mais je ne vois pas comment m'en servir.

    Non, il me faut quelque chose de plus souple du style : Je clique, ça fait le boulot, et au revoir.
    Et puis SI, en plus, on pouvait m'expliquer les différentes étapes, ça serai Noël avant l'heure.

    Vous n'imaginez pas avec quelle joie je pourrais vous remercier si quelqu'un pouvait me faire avancer là-dessus.
    Merci - Marc

  2. #2
    Membre Expert Avatar de Ti-Slackeux
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 868
    Par défaut
    Bonjour,

    Un truc à tester :
    Clic droit sur "Démarrer", "Gestions des disques"
    Insérer la clef USB puis clic droit sur le volume de la clef.
    Finalement clic sur "Modifier la lettre de lecteur..."

    hth,

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut
    Citation Envoyé par Ti-Slackeux Voir le message
    Bonjour,

    Un truc à tester :
    Clic droit sur "Démarrer", "Gestions des disques"
    Insérer la clef USB puis clic droit sur le volume de la clef.
    Finalement clic sur "Modifier la lettre de lecteur..."

    hth,
    Oui, c'est justement parce que je ne veux plus faire comme ça que je cherche un fichier *.bat pour faire le boulot, et surtout parce que tout les utilisateurs/utilisatrices ne veulent pas se prendre la tête avec des clics.
    Merci quand même - Marc

  4. #4
    Membre Expert Avatar de Ti-Slackeux
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 868
    Par défaut
    Reuh,

    Bizarre, pour moi la lettre affectée à la clef reste avec la clef.
    Insérer une autre clef n'utilisera pas la lettre déjà affectée

    >.<

  5. #5
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut
    Citation Envoyé par Ti-Slackeux Voir le message
    Reuh,

    Bizarre, pour moi la lettre affectée à la clef reste avec la clef.
    Insérer une autre clef n'utilisera pas la lettre déjà affectée

    >.<
    Bon, tout d'abord, je me rattrape et te salut. Une clef USB se voit automatiquement attribuée une lettre de disque. Cette lettre n'est jamais C (souvent le disque de travail de l'ordi) et rarement D (qui est souvent déjà utilisé).
    Bon, imaginons que tu as 5 clés USB connecté à ton computer, elles seront affectées des lettres E, F, G, H et I (bon heu je crois)? Maintenant tu rajoutes une clé (donc le nom de volume s'appelle "Marc") et celle-ci sera affecté de la lettre J.
    Mais comme tu as part ailleurs un logiciel qui travaille qu'avec une clé qui a la lettre M et bien se logiciel ne travaillera pas du tout avec la clé donc le nom de volume est "Marc" puisse que la lettre affecté alors est J.
    Sauf si tu as cliqué sur le fichier *.bat que je cherche à avoir/construire qui va affecter la lettre M à la clé nommée "Marc". Sinon t'es obligé de faire un clique droit sur le bouton "démarrage" puis "gestion des disque" et ...... (que je ne veux plus faire)
    Voilà ce qui me motive.
    Marc

  6. #6
    Membre Expert Avatar de Ti-Slackeux
    Homme Profil pro
    Robotique
    Inscrit en
    Août 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Robotique

    Informations forums :
    Inscription : Août 2007
    Messages : 868
    Par défaut
    Bonsoir,

    J'ai trouvé pourquoi ça foire partiellement !

    En fait windows (un peu con) relie la clef, la lettre affectée ET le port ou on l'a branchée au moment du changement de lettre.
    Je viens de faire le test, aussi longtemps que la clef ou on a forcé la lettre reste sur le même port ben çà fonctionne (4 clefs dispo pour ce petit test).
    Et même si on branche d'autres clefs avant ou après la clef "modifiée" ça fonctionne.

    J'espère que ce coup ci, c'est ce que tu recherches

    hth,

  7. #7
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut
    Bon, je vois vraiment que tu t'investi profondément et je ne comprends pas où est-ce que je fais une erreur dans mon énoncé.
    Ce que je voudrais c'est une séquence de commande réuni dans un fichier batch (*.bat) car j'ai plein de clé USB avec des noms de volume différents qui se connectent à des entrées USB multiples sur de multiple ordinateurs.
    Voici un exemple avec 2 ordinateurs différents

    Tu allumes l'ordinateur N°1.
    Tu mets la clé USB "Toto" : peut-être la lettre E est affectée
    Tu cliques sur ton fichier batch (*.bat) : il ne se passe rien
    Tu mets la clé USB "Xavier" : peut-être la lettre F est affectée
    Tu cliques sur ton fichier batch (*.bat) : la clé USB "Xavier" est alors affectée de la lettre X
    Tu retires cette clé ("Xavier")

    Tu la connectes sur l'ordinateur N°2 déjà allumé : Ta clés "Xavier" va être alors affectée peut-être de la lettre G en fonction des autres entrées USB occupées
    Tu cliques sur ton fichier batch (*.bat) : la clé USB "Xavier" est alors affectée de la lettre X
    Sur ce même ordinateur N°2, tu connectes la clé "Marc" : Cette dernière sera alors affecté (je pense) de la lettre G
    Alors sur cet ordinateur, tu cliques sur ton fichier batch (*.bat), qui est le même fichier batch que t'avais aussi installé sur tous les ordinateurs : Ta clé USB "Marc" est alors affectée de la lettre M

    Voilà le rôle que j'attends de ce fichier *.bat
    Merci - Marc

  8. #8
    Membre confirmé Avatar de Nsky__
    Homme Profil pro
    Ingénieur DevSecOps
    Inscrit en
    Mars 2025
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur DevSecOps
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2025
    Messages : 18
    Par défaut
    Citation Envoyé par MarcoCham Voir le message
    Bon, je vois vraiment que tu t'investi profondément et je ne comprends pas où est-ce que je fais une erreur dans mon énoncé.
    Ce que je voudrais c'est une séquence de commande réuni dans un fichier batch (*.bat) car j'ai plein de clé USB avec des noms de volume différents qui se connectent à des entrées USB multiples sur de multiple ordinateurs.
    Voici un exemple avec 2 ordinateurs différents

    Tu allumes l'ordinateur N°1.
    Tu mets la clé USB "Toto" : peut-être la lettre E est affectée
    Tu cliques sur ton fichier batch (*.bat) : il ne se passe rien
    Tu mets la clé USB "Xavier" : peut-être la lettre F est affectée
    Tu cliques sur ton fichier batch (*.bat) : la clé USB "Xavier" est alors affectée de la lettre X
    Tu retires cette clé ("Xavier")

    Tu la connectes sur l'ordinateur N°2 déjà allumé : Ta clés "Xavier" va être alors affectée peut-être de la lettre G en fonction des autres entrées USB occupées
    Tu cliques sur ton fichier batch (*.bat) : la clé USB "Xavier" est alors affectée de la lettre X
    Sur ce même ordinateur N°2, tu connectes la clé "Marc" : Cette dernière sera alors affecté (je pense) de la lettre G
    Alors sur cet ordinateur, tu cliques sur ton fichier batch (*.bat), qui est le même fichier batch que t'avais aussi installé sur tous les ordinateurs : Ta clé USB "Marc" est alors affectée de la lettre M

    Voilà le rôle que j'attends de ce fichier *.bat
    Merci - Marc

    Hello,
    Si tu souhaites faire cela, tu peux utiliser ça :
    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
    @echo off
    ::Permet de gérer les caractères spéciaux
    chcp 65001
    setlocal
    
    :: Liste des correspondances VolumeName => Lettre de lecteur souhaitée
    call :assignDrive "Xavier" "X"
    call :assignDrive "Marc" "M"
    call :assignDrive "Toto" "T"
    :: Ajoute autant de lignes que nécessaire ici selon le nombre de clés que tu as.
    
    goto :eof
    
    :assignDrive
    set "VOLUME_NAME=%~1"
    set "TARGET_LETTER=%~2"
    
    :: Parcourt tous les lecteurs
    for /f "tokens=1,2* delims=," %%A in ('wmic logicaldisk get VolumeName^, DeviceID /format:csv ^| findstr /r "[A-Z]:"') do (
        set "line=%%A %%B %%C"
        call :processLine %%C %%B %%A
    )
    goto :eof
    
    :processLine
    :: %1 = VolumeName, %2 = DeviceID (ex: E:), %3 = machine name (non utilisé)
    set "VOL=%~1"
    set "DRIVE=%~2"
    setlocal EnableDelayedExpansion
    
    :: Supprime les guillemets autour de la chaîne si présents
    set "VOL=!VOL:"=!"
    
    if /i "!VOL!"=="%VOLUME_NAME%" (
        echo Correspondance trouvée : %VOLUME_NAME% est sur !DRIVE!
        echo Tentative d’assigner la lettre %TARGET_LETTER%...
        powershell -Command "Get-Partition -DriveLetter '!DRIVE:~0,1!' | Set-Partition -NewDriveLetter '%TARGET_LETTER%'"
    )
    
    endlocal
    goto :eof
    Ton bat devra forcément être utilisé en tant qu'admin étant donné que tu fais de la réattribution de lettre/volume à la demande.
    Seul bémol selon ce que tu veux faire a la L37, on gagne du temps à passer par Powershell pour gérer l'attribution. Si tu veux vraiment faire du natif de chez natif, il faudrait remplacer Wmic+Powershell par diskpart en passant par une step temporaire de récupération des infos de diskpart (notamment avec list volumes), mais je vois pas trop l'intérêt de faire cela au vu de ce que tu demandes.

    Nsky_

  9. #9
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut
    Merci Nsky__
    Comme je suis en déplacement, je regarderai ça en rentrant.
    Par contre, y a t il une possibilité pour déclarer être en administrateur car je ne serai pas le seul à cliquer là-dessus.
    Il faudrait quelque chose de très simple.
    Merci - Marc

  10. #10
    Membre confirmé Avatar de Nsky__
    Homme Profil pro
    Ingénieur DevSecOps
    Inscrit en
    Mars 2025
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur DevSecOps
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2025
    Messages : 18
    Par défaut
    Un simple clic droit > Executer en tant qu'administrateur sur ton fichier suffit

  11. #11
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut
    Bonjour, voilà je suis de retour.
    Bon, je signale à tout ceux qui liront ce post que ça marche à merveille.
    Ce fichier Batch est vraiment fait pour ça et les commentaires sont comme une cerise sur le gâteau.
    Merci à Ti-Slackeux pour sa participation et à Nsky__ pour son résultat.
    Marc

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

Discussions similaires

  1. [PowerShell] Fonction Add-VMHardDiskDrive et spécification de la lettre du disque
    Par Samuel_ dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 04/05/2015, 09h16
  2. [AC-2003] Récupérer la Lettre d'un lecteur par son nom de volume
    Par vversaveau dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2010, 12h33
  3. Réponses: 9
    Dernier message: 22/08/2007, 12h25
  4. [MySQL] Appel d'une fonction au nom généré dynamiquement
    Par FrankOVD dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 10/06/2006, 14h36
  5. [Mail] fonction mail / nom de l'expediteur
    Par santoya dans le forum Langage
    Réponses: 1
    Dernier message: 03/03/2006, 18h17

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