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 :

Script d'inscription de VHD au multiboot [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut Script d'inscription de VHD au multiboot
    Bonjour à tous,

    Je vous explique mon soucis, je suis actuellement en train de programmer en batch (nécessiter de l'entreprise et de mes capacités à faire du scripting) afin de facilité la tâches à des utilisateurs pour rentrer une .vhd au multiboot.

    L'environnement de travail est Windows 7 et la commande Batch.

    Voici l'extrait du code,

    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
    rem liste les liens complet où les vhd se trouvent
    dir /s /b D:\"Mes Images Virtuelles"\*.vhd > loglien.txt
    rem procédure de délimitation des nom pour les vhd
    for /f "delims=" %%a in ('dir /s/b D:\"Mes Images Virtuelles"\*.vhd') do call :extract "%%a"
    pause
    
    :extract
    rem Compte le nombre de lignes
    for /f "delims=" %%i in ('type logtnommachine.txt') do set /a ligne+=1
    rem echo Nombre de ligne : %ligne%
    for /f %ligne% in (logtnommachine.txt) do echo ligne%ligne% >> test.bat
    rem découpe les nom des machines
    set fichierbck=%~n1
    set nomvhd=%fichierbck: = %
    echo %nomvhd%%~x1 >> logtnommachine.txt
    ren "%~f1" %nomvhd%%~x1
    avant :extract ça sert à récupérer l'ensemble des fichier vhd présent dans le répertoire "Mes Machines Virtuelles".
    :extract permet de récupérer uniquement le nom des fichiers.

    Je souhaite afficher les noms des fichiers et créer un menu pour que l'utilisateur puisse choisir sur lequel il veut utiliser et qu'en fonction du nom, le script me fasse une recherche sur le fichier loglien.txt et inscrit dans une varaible.


    J'ai fais beaucoup de forum, dont celui là, et de recherche google. J'ai bien avancé mais je bloque sur ce soucis.

    Merci d'avance

    EDIT :
    J'ai réussis à afficher un texte entier avec la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type logtnommachine.txt
    Il m'affiche l'intégralité du fichier.

    Cependant, en fonction de la requête tapé de l'utilisateur, comment peut-on faire pour qu'une recherche soit lancer dans un fichier, récupère la ligne et l'intègre dans une variable ?

    Cordialement

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Je suis en très bonne voie, j'ai réussis à faire une recherche en fonction de ce que l'utilisateur à taper

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /f "delims=" %%a in ('findstr /p "%variable% nomfichier.txt') do set "variable=%%a"
    
    rem ça enlève le C:\
    set variable=%variable:~3% > test.txt
    Cependant, j'ai un soucis avec un espace à la fin lorsqu'il me récupère le chemin complet, du coup ça créer une erreur au boot.

    Si vous aviez le script miracle qui me permettrait d'enlever l'espace en fin de ligne ?

    Cordialement.

  3. #3
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    D'où vient ton "logtnommachine.txt". T'as pas un exemple plus concret de ce que tu veux faire, c'est pas très clair, sinon, t'as combien d'images disques en moyenne ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    Bonjour,

    Veuillez m'excuser pour la présentation un peu chaotique je savais pas vraiment comment expliquer mon soucis

    Ce fichier vient d'un script pour lister l'ensemble du dossier des machines virtuelles et ce script permet d'extraire juste le nom de la machine à partir du liens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    rem liste les liens complet où les vhd se trouvent
    dir /s /b D:\"Mes Images Virtuelles"\*.vhd > loglien.txt
    rem procédure de délimitation des nom pour les vhd
    for /f "delims=" %%a in ('dir /s/b D:\"Mes Images Virtuelles"\*.vhd') do call :extract "%%a"
    
    
    rem extrait juste le nom de la vhd
    :extract
    rem découpe les nom des machines
    set fichierbck=%~n1
    set nomvhd=%fichierbck: = %
    echo %nomvhd%%~x1 >> logtnommachine.txt
    ren "%~f1" %nomvhd%%~x1
    Justement, le soucis c'est que je sais pas combien il y aurait d'image en moyenne, ça peut être une seule à une dizaine.

    Cependant, j'ai réussis tout ce que j'avais à faire, sauf au moment de récupérer le liens de la machine à la fin du liens j'ai un espace.

    J'ai pu découvrir ça en testant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for /f "delims=" %%a in ('findstr /p "%nomvhd%" loglien.txt') do set "chemin=%%a" 	
    set chemin=%chemin:~3% > test.txt
    echo nom chemin "[D:]\%chemin%" >> test.txt
    rem Contrôle de l'erreur pour vérifier si l'utilisateur a bien rempli le champ.
    rem if [%chemin%] ==[] @echo Erreur : Aucune entree n'a ete saisie & goto chemin
    rem Renseignement des données pour l'inscription au multiboot (la variable attacher à device et osdevice est volontaire).
    bcdedit /set %uuid%device vhd="[D:]\%chemin%"
    bcdedit /set %uuid%osdevice vhd="[D:]\%chemin%"
    echo.
    Après la variable %chemin% de device et osdevice j'ai un espace qui se cale et j'arrive pas du tout à l'enlever. Il m'étais arrivé la même chose avec %uuid% mais j'ai pu passer outre en le collant comme au dessus.

    J'espère avoir été assez clair :/

    Cordialement.

  5. #5
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Citation Envoyé par Emma0 Voir le message
    Après la variable %chemin% de device et osdevice j'ai un espace qui se cale et j'arrive pas du tout à l'enlever.
    C'est parce que t'as mis des espaces dans tes redirections vers les fichiers [code1=ligne 13; code2=lignes 2,3]

    Sinon, compte tenu de ta demande, voilà qui devrait te faire avancer. Reste bien sûr à ajouter des contrôles de saisis, etc.

    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
    @echo off
    set "vhd_drive=d:"
    set "vhd_path=\mes images virtuelles\*.vhd"
    set "vhd_num=0"
    set "vhd_id="
    set "vhd_list=vhdl"
    set "vhd_selected="
    
    rem vhd list
    echo.>%vhd_list%
    echo Liste des fichiers VHD :
    echo ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    for /f "tokens=*" %%i in ('dir /s /b /a-d "%vhd_drive%%vhd_path%" 2^>nul') do call :listvhd "%%~i"
    echo.
    if "%vhd_num%"=="0" echo Aucun fichier disponible...& pause& goto :eof
    call :getvhd
    call :loadvhd
    pause
    goto :eof
    
    :loadvhd
    bcdedit /set %uuid%device vhd="[%vhd_drive%]%vhd_selected%"
    bcdedit /set %uuid%osdevice vhd="[%vhd_drive%]%vhd_selected%"
    goto :eof
    
    :getvhd
    set /p "vhd_id=Choisir id du vhd : "
    for /f "tokens=* skip=%vhd_id%" %%i in (%vhd_list%) do set "vhd_selected=%%~i"& goto :eof
    
    :listvhd
    set /a vhd_num+=1
    rem redirect vhd file path to vhdl file
    echo %~pnx1>>%vhd_list%
    echo [%vhd_num%] : %~n1
    goto :eof

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Par défaut
    C'est exactement ce que je cherchais

    Vraiment stupide, je voulais présenter ça proprement, ça m'as apporter que des soucis

    Tu m'as donné en plus un bonus pour le choix de la VHD avec le numéro. Tout simplement excellent ! Je galérais sur ce point.

    Merci encore

    Sujet résolu

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

Discussions similaires

  1. optimisation d'un script d'inscription en PHP.
    Par JeanJean75 dans le forum Langage
    Réponses: 20
    Dernier message: 24/12/2009, 01h25
  2. Script d'inscription php
    Par demenvil dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2009, 12h34
  3. [MySQL] Script d'inscription qui ne fonctionne pas
    Par brotic dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/11/2008, 20h47
  4. [Calendrier] Script d'inscription aux évènements
    Par Donuts64 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 10/10/2008, 10h12

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