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 :

Mettre le résultat d'une commande dans une variable


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut Mettre le résultat d'une commande dans une variable
    Bonjour tous le monde,

    1.
    Voila je me suis mis à la programmation batch depuis hier,le but étant de créer une clé usb bootable (MS-DOS 98),le logiciel bien qu'il ne me convienne pas à mes attentes fonctionne, seulement pour un soucis d'affichage et de clarté j'aimerai faire une tableau.

    voila donc comment mettre le résultat de cette commande dans une variable

    [commande]
    FSUTIL FSINFO DRIVEtype L:
    [/commande]


    2.
    Comment je pourrait découper le résultat en 2 en supprimant les 2 espaces et le carachtère "-".

    [resultat a découper]
    C: - Lecteur fixe
    [/resultat a découper]

    Voici ce que j'aimerai obtenir

    %LecteurActif% = C: - Lecteur fixe
    %LettreLecteur% = C:
    %TypeLecteur% = Lecteur fixe


    Voilà j'éspère avoir été assez clair dans la déscription de mon problème

  2. #2
    Expert éminent
    Avatar de shawn12
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2006
    Messages
    3 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2006
    Messages : 3 368
    Points : 6 800
    Points
    6 800
    Par défaut
    Par "le résultat de la commande", tu veux dire le texte qui est affiché par la commande dans la console lors de son exécution ou juste le code retour ?

    Sinon, tu peux mettre ce que t'affiche la commande dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_commande.exe param1 param2>fichier.txt
    Le code retour de la commande est normalement déjà contenu dans une variable (%errorlevel%).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut RE
    Merci de ta réponse,

    Oui je veut dire "le texte qui est affiché par la commande dans la console lors de son exécution".

    J'ai essayé d'écrire le résultat dans un fichier texte et de l'afficher mais je n'arrive toujours pas le découper en 2.

    Sinon il n'y a pas d'autre alternative que d'écrire la réponse dans un fichier texte? ne peut t'on pas le charger dans une variable pour pouvoir le decouper et le réassigner a 2 autre variable pour pouvoir l'afficher dans un tableau?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut re
    Merci pour tout,
    J'ai trouvé comment faire pour mettre chaque ligne dans une variable puis la découper pour l'afficher dans un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for /f "tokens=1* delims=:" %%i in ('findstr /n /r . lecteur.txt') do set vr%%i=%%j
    
    
    echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo ºLettre ºType de lecteur  ºInformation sur le lecteur         º
    echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    IF not "%vr1%"==""    echo  %vr1:~0,1%     %vr1:~5,20%  %vr1:~25,200%
    IF not "%vr2%"==""    echo  %vr2:~0,1%     %vr2:~5,20%  %vr2:~25,200%
    IF not "%vr3%"==""    echo  %vr3:~0,1%     %vr3:~5,20%  %vr3:~25,200%
    IF not "%vr4%"==""    echo  %vr4:~0,1%     %vr4:~5,20%  %vr4:~25,200%

  5. #5
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut,

    À moins que tu ne te trompes de version, ton script n'a aucune chance de fonctionner sous

    Citation Envoyé par daviddu54 Voir le message
    MS-DOS 98

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut re
    Salut,

    Il fonctionne sous xp et créé un clé USB bootable (émulation disquette de boot win 98)

  7. #7
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Donc ce script n'est pas destiné à ms-dos. C'est en fait ton premier message qui pouvait prêter à confusion. Alors bonne continuation.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /F "delims=- tokens=1,*" %%i in ('fsutil fsinfo drivetype c:') do set LettreLecteur=%%i & set TypeLecteur=%%j & set LecteurActif=%%i-%%j

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut re
    merci ca ma bien aider ton bout de script,j'ai même appris que l'on pouvait mettre 2 commandes SET à la suite,j'ai accoupler ton bout de script avec un autre que j'avait déjà,mais ca ne marche pas ensemble,mais séparer ca marche,tu peut regarder?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    FOR /F "tokens=1,2,3 delims=\ " %%A IN ('FSUTIL FSINFO DRIVES ^| MORE /E /T0') DO (
    IF "%%B"=="" (
    for /F "delims=- tokens=1,*" %%i in ('fsutil fsinfo drivetype %%A') do set LettreLecteur=%%i & set TypeLecteur=%%j
    ECHO  %LettreLecteur%   %TypeLecteur%
     )
    )

  9. #9
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    for /f "skip=2 tokens=1 delims=\" %%a IN ('FSUTIL FSINFO DRIVES ^| MORE /E /t0') do call :identify %%a
    pause
    goto fin
    
    :identify
    for /f "delims=- tokens=1,*" %%i in ('fsutil fsinfo drivetype %1') do set LettreLecteur=%%i & set TypeLecteur=%%j
    echo  %LettreLecteur%   %TypeLecteur%
    goto :eof
    :fin
    si bien sûr c'est ce que tu cherches à faire.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut re
    Impeccable,ca m'a bien réduit mon script tout ca.

    Par contre j'ai pas compris l'histoire du "skip=2" et que la variable "%%a" peut ce transformer en la variable "%1".

    Tant qu'on y ai,tu ne sais pas par hazard coment récuperer le nom du volume est sa taille

  11. #11
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    «Skip» pour ignorer le lecteur de disquettes.
    «%1» parce que la variable est passée en paramètre.
    Le nom du volume est accessible avec la commande «vol» ( vol c: )
    et pour la taille...

    et bien je te laisse chercher un peu.
    ( pour info les possibilités sont nombreuses)

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 28
    Points
    28
    Par défaut RE
    Ah ok skip=2 pour ignorer lee lecteur a et b,oui pour le volume j'avais trouver,par contre pour la taille pas encore.

    merci pour tout

  13. #13
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Si tu éprouves des difficultés, n'hésites pas à poster et ouvrir un autre topique. les différents intervenants de developpez.net t'apporteront l'aide dont tu as besoin. bonne continuation à toi.

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

Discussions similaires

  1. [XSLT 1.0] Mettre le résultat de l'appel d'une fonction dans une variable
    Par Giovanny Temgoua dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2012, 17h47
  2. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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