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 :

Lister fichiers d'un répertoire et créer menu en fonction [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2004
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2004
    Messages : 131
    Par défaut Lister fichiers d'un répertoire et créer menu en fonction
    Bonjour tout le monde,

    Je cherche à réaliser les actions suivantes au sein d'un bat:
    Lister les fichiers d'un répertoire.
    Créer un menu en fonction des fichiers (du genre "sélectionner le fichier à exécuter")
    puis ensuite exécuter le dit fichier.

    Est-ce que cela est possible? J'ai vu qu'on pouvait sortir la liste des fichiers dans un fichier texte mais je souhaiterai créer un menu utilisateur de sélection du fichier...
    Je suis preneur de toute réponse, suggestion, aide, lien...

    Merci d'avance pour vos retours.

    ++

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Tu voudrais executer quel fichier .exe, .pdf, .txt ou tous ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2004
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2004
    Messages : 131
    Par défaut
    Je voudrais exécuter un exe qui prendrait en paramètre le fichier sélectionné...

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Tu peux récupèrer les fonctions windows (open file dialog) dans un code VBS et lancé ton application :

    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
    Function BrowseForFile()
    With CreateObject("WScript.Shell")
    Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
    Dim tempFolder : Set tempFolder = fso.GetSpecialFolder(2)
    Dim tempName : tempName = fso.GetTempName() & ".hta"
    Dim path : path = "HKCU\Volatile Environment\MsgResp"
    With tempFolder.CreateTextFile(tempName)
    .Write "<input type=file name=f>" & _
    "<script>f.click();(new ActiveXObject('WScript.Shell'))" & _
    ".RegWrite('HKCU\\Volatile Environment\\MsgResp', f.value);" & _
    "close();</script>"
    .Close
    
    End With
    .Run tempFolder & "\" & tempName, 1, True
    BrowseForFile = .RegRead(path)
    .RegDelete path
    End with
    End Function
    Dim appPath 'Chemin de l'application
    appPath = "notepad.exe"
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run chr(34) & appPath & chr(34) & (BrowseForFile)
    Je t'ai fait un exemple avec notepad.exe que tu dois remplacer par le nom de ton exe.

    N'étant pas un spécialiste du VBS, si cette solution te convient, tu pourras voir avec Hackoo () pour les différentes options (affichage selon extension, etc..)


  5. #5
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2004
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2004
    Messages : 131
    Par défaut
    Bonjour sachadee,

    Merci pour ta réponse.
    Malheureusement je ne peux pas utiliser de script VBS dans mon contexte... Je dois faire cela avec un fichier bat, je sais ce n'est peut être pas la meilleure solution mais mes contraintes font que je ne peux pas faire autrement.

    En tout cas merci de t'etre penché sur mon problème!

    ++

  6. #6
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    En bat on pourrait sinon imaginer une approche de ce type :
    Ici j'ai pris comme extension (*.txt) qui sera lancer automatiquement avec
    notepad.

    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
    @echo off&cls
    mode con cols=80 lines=100
    if exist temp del temp
    setlocal enabledelayedexpansion
    set $count=1
    for %%a in (*.txt) do (echo %%a >>temp
                           echo !$count! - %%a
                           set /a $count+=1)
    
    set /p $choix=Entrez la valeur correspondante au fichier que vous voulez lancer : 
    
    set $count=1
    for /f "delims=" %%a in (temp) do (if !$count!==%$choix% (set $fichier=%%a
                                                              goto:lance)
                                       set /a $count+=1)
    
    
    :lance
    start %$fichier%
    Ce n'est qu'une ébauche pour te donner une idée.


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

Discussions similaires

  1. [XL-2010] Lister fichiers d'un répertoire mais de façon récursive
    Par loranba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/04/2012, 08h48
  2. [XL-2007] Lister fichiers d'un répertoire
    Par javamax dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/07/2010, 21h27
  3. Lister fichiers d'un répertoire
    Par toma03 dans le forum Débuter
    Réponses: 4
    Dernier message: 19/05/2009, 13h19
  4. Lister fichiers et sous répertoire dans un menu déroulant
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2008, 16h48
  5. Comment lister fichier d'un répertoire ?
    Par SebRs dans le forum C++
    Réponses: 2
    Dernier message: 13/04/2006, 12h31

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