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 :

pbl de syntaxe


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut pbl de syntaxe
    Bonjour à tous,

    Je cherche à lister toutes le unités (Drive) qui sont valide sur mon PC en Commande DOS.

    Ma première idée a été de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not exist B:\ (echo B:\ n existe pas) else (echo B:\ existe)
    qui me renvois
    B:\ n existe pas

    Puis de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not exist C:\ (echo C:\ n existe pas) else (echo C:\ existe)
    qui me renvois
    C:\ existe
    etc sur toutes les lettres de l'alphabet.

    Cela fonctionne mais je ne trouve pas ça pas beau et plutôt lourd.






    Du coup ne trouvant pas comment récupérer les valeurs ASCII des lettres de l'alphabet sous DOS, car mon idée était de boucler sur leurs N° avec une boucle qui l'incrémente

    J'essaye la boucle For d'une autre manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do echo %%a
    et il me met.
    %%a était inattendu


    Je pense que je ne dois pas être loin de la solution finale mais un petit coup de main serait le bienvenu

    Merci d'avance

  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,

    Dans une invite de commandes il faut utiliser %a tandis que dans un script il faut doubler les pourcents comme ceci : %%a

  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
    @barnabe0057 a raison

    Tu peux aussi te baser sur le wmi pour trouver les lettres de lecteurs

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cls
    @echo off
     
    SETLOCAL ENABLEDELAYEDEXPANSION
     
    for /f "tokens=*" %%a in ('wmic LOGICALDISK get DeviceID /value ^| find "="') do (
    	set "%%~a"
    	set "DeviceID=!DeviceID:~,-1%!"
    	if exist "!DeviceID!" echo !DeviceID!
    )
     
    pause

    PS : Désoler pour le trick qui est nécessaire supprimer un retour ligne indésirable dans le sortie de la commande wmic

    Edit :
    Après relecture il semble que tu souhaites juste afficher les lettres de lecteur en ligne de commande, le plus simple serait donc :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic LOGICALDISK get DeviceID

  4. #4
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    @ ericlm128

    Super cela marche nickel

    Et il est vrai que le vmi je ne le maitrise pas il va falloir que je le potasse car ça à l'air puissant !!

    Citation Envoyé par ericlm128 Voir le message
    Après relecture il semble que tu souhaites juste afficher les lettres de lecteur en ligne de commande, le plus simple serait donc :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic LOGICALDISK get DeviceID
    alors ce n'est pas tout à fait juste ce que je veux faire au final c'est dans un fichier texte y mettre l'arborescence de mes fichiers qui portent l'extenssion .pdf, .doc*, .xls* et .ppt*

    je sais que j'ai plein de doublons qui ne portent pas le même nom

    malheureusement la fonction Tree n'est apparemment pas possible pour préciser l'extension que je veux, mais Dir pourrais le faire donc je regarde comment faire

    en tout cas merci pour le bout de code je

    @+

  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
    Le batch c'est bien pour des opérations simples.

    Je te conseil maintenant le PowerShell à 100%.

    Concernant le problème de doublon j'utilise DoubleKiller, rapide et efficace.



    malheureusement la fonction Tree n'est apparemment pas possible pour préciser l'extension que je veux, mais Dir pourrais le faire donc je regarde comment faire
    Tout à fait

Discussions similaires

  1. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53
  2. Syntaxe requete
    Par Chipolata dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/03/2003, 14h22
  3. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20
  4. Syntaxe TASM <-> MASM
    Par LFC dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2003, 15h56
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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