Batch, choix de repertoire!

Fermé
(@)-JYX8X8-(@) Messages postés 4185 Date d'inscription vendredi 10 avril 2009 Statut Contributeur Dernière intervention 24 décembre 2014 - 17 mai 2013 à 16:35
 jemaid38 - 1 déc. 2015 à 15:30
Salut à tous,

une petite question de batch :)

Voila j'ai fait un batch qui cherche des ligne dans des fichiers de logs pour les mettre dans un txt, ca fonctionne tres bien.

mon probleme c'est qu'il faut mettre forcement le bat dans le répertoire courant avec les fichiers de logs.

J'aimerais une solution qui me permettrai d'ouvrir une fenêtre explorateur (genre ouvrir), pour sélectionner le répertoire contenant les logs a la souris depuis n'importe que position du bat.

taper le chemin a la main n'est pas viable.

merci de votre aide :)
A voir également:

1 réponse

Quester4 Messages postés 134 Date d'inscription mercredi 8 février 2012 Statut Membre Dernière intervention 18 juillet 2013 125
18 mai 2013 à 02:14
Bonsoir,

Tu ne peux pas avoir ces petites fenêtres où tu fais défiler pour avoir ton dossier. Par contre, tu peux faire comme ceci :
set chemin=C:\

:choix
set dossier=
dir %chemin%
echo.
echo N'entrez pas de "\", choisissez un seul dossier a la fois.
echo (Entree pour valider)
set /p dossier=Dossier : 
if "%dossier%"=="" goto :next
set %chemin%=%chemin%\%dossier%
goto :choix

:next
echo Dossier choisi : %chemin%
REM ...

Je précise que ça se fait en console : ça affiche la liste des répertoires dans un dossier, et l'utilisateur choisit le répertoire à chaque fois, un par un. À noter que les fichiers sont aussi affichés par la commande Dir... Pour afficher seulement les dossiers, il faudrait faire une différence, un peu comme ceci :
for /f "tokens=*" %%a in ('dir "%chemin%" /A-D') do (
  for /f "tokens=*" %%n in ('dir "%chemin%"') do if not %%a==%%n echo %%n
)

À noter que je ne suis pas sûr du bon fonctionnement de ces codes, n'ayant pas pu les tester.

En espérant t'avoir aidé,
Quester4
1
(@)-JYX8X8-(@) Messages postés 4185 Date d'inscription vendredi 10 avril 2009 Statut Contributeur Dernière intervention 24 décembre 2014 421
23 mai 2013 à 11:10
merci pour ta réponse :)

Je test ca.
0
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
Modifié par greg6614 le 25/05/2013 à 20:45
Salut, tu peux faire ceci :

@echo off
mode con:cols=90 lines=12
title -==*==- Batch FolderBrowserDialog -==*==-
(
echo Option Explicit
echo.
echo WScript.Echo BrowseFolder^( "My Computer", False ^)
echo.
echo Function BrowseFolder^( myStartLocation, blnSimpleDialog ^)
echo    Const MY_COMPUTER  = ^&H11^&
echo    Const WINDOW_HANDLE = 0
echo.
echo    Dim numOptions, objFolder, objFolderItem
echo    Dim objPath, objShell, strPath, strPrompt
echo.
echo    strPrompt = "Où voulez vous enregistrer le fichier:"
echo    If blnSimpleDialog = True Then
echo       numOptions = 0
echo    Else
echo       numOptions = ^&H10^&
echo    End If
echo.   
echo    Set objShell = CreateObject^( "Shell.Application" ^)
echo.
echo    If UCase^( myStartLocation ^) = "%userprofile%" Then
echo       Set objFolder = objShell.Namespace^( MY_COMPUTER ^)
echo       Set objFolderItem = objFolder.Self
echo       strPath = objFolderItem.Path
echo    Else
echo       strPath = myStartLocation
echo    End If
echo.
echo    Set objFolder = objShell.BrowseForFolder^( WINDOW_HANDLE, strPrompt, _
echo                                              numOptions, strPath ^)
echo    If objFolder Is Nothing Then
echo       BrowseFolder = ""
echo       Exit Function
echo    End If
echo.
echo    Set objFolderItem = objFolder.Self
echo    objPath = objFolderItem.Path
echo.
echo    BrowseFolder = objPath
echo End Function
)>"%tmp%\Folderpath.vbs"
for /f "tokens=* delims=*" %%a in ('Cscript "%tmp%\Folderpath.vbs" //nologo') do (set "a=%%a")
echo Tu as choisis le dossier "%a%"
pause>nul
0
jemaid38 > greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017
1 déc. 2015 à 15:30
Je passais par là...
Et ce petit fichier de commande répond parfaitement à mon besoin : un grand merci Greg6614!
0