Executer la commande dos "dir"

cs_rober
Messages postés
86
Date d'inscription
vendredi 29 novembre 2002
Statut
Membre
Dernière intervention
21 septembre 2010
- 23 nov. 2006 à 23:06
JessicaR44
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013
- 24 nov. 2006 à 20:25
bonsoir,

je voudrais dans mon prog executer la commande dos "dir" pour lister tous les sous repertoires a partir d'un chemin connu et ensuite l'ecrire dans un fichier texte sous un repertoire connu.

en dos il me semble que ca donne cela mais je ne suis pas sur
dir c:\cao\ /s c:cao/search.pro

merci de votre aide

11 réponses

MadM@tt
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
23 nov. 2006 à 23:11
Ton but est de lister le contenu d'un répertoire ? (car la y'a une fonction de VB toute prete pour), ou alors vraiment de passer par une commande DOS ? (ce qui est plus difficile)

Ciaò
MadMatt
Vb System Library
0
MadM@tt
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
23 nov. 2006 à 23:15
Parce que je me souviens d'ailleurs d'une source qui s'appelait "Dos Pipe" pour executer des commandes DOS et avoir le résultat dans un textbox

Ciaò
- MadMatt -
Vb System Library
0
cs_rober
Messages postés
86
Date d'inscription
vendredi 29 novembre 2002
Statut
Membre
Dernière intervention
21 septembre 2010

23 nov. 2006 à 23:29
je voudrais une fonction completement invisible sur l'interface.
le but est de generer un fichier path pour ensuite lancer un logiciel qui utilisera ce path
0
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
23 nov. 2006 à 23:32
Salut,

Le plus simple est encore de poser un composant DirListBox sur ta feuille, de le rendre invisible, et de mettre Dir1.Path = "C:\LeRepertoireQueTuVeux".

Essaye le code suivant, il devrait te lister les sous répertoires du répertoire précédemment choisi :




For i=0 to Dir1.ListCount
 MsgBox Dir1.list(i)
Next i





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rober
Messages postés
86
Date d'inscription
vendredi 29 novembre 2002
Statut
Membre
Dernière intervention
21 septembre 2010

23 nov. 2006 à 23:46
Ca marche mais un petit pb
Pourrais tu m'expliquer le pourquoi de la derniere ligne

Voici mon code:
Private Sub Command1_Click()
Dim SearchPro As String
SearchPro = "c:\cao\search1.pro"
Open SearchPro For Binary As #1
Dir1.Path = text6_chemin_projet.Text
For i = 0 To Dir1.ListCount
Put #1, , Dir1.List(i) & vbNewLine
' MsgBox Dir1.List(i)
Next i
Close #1
End Sub

Voici le resultat:
C:\cao
C:\Converted Music
C:\Documents and Settings
C:\flexlm
C:\GifAni
C:\HSF
C:\My Shared Folder
C:\NVIDIA
C:\Pdf
C:\Program Files
C:\TRANSFERT
C:\WINDOWS
C:\WINNT
C:\WUTemp

S  C:\WINNT C:\WUTemp
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
24 nov. 2006 à 00:09
Salut,
bien possible que ton fichier existait déjà avant
open  ... For Binary n'efface pas pas le fichier existant

Daniel
0
cs_rober
Messages postés
86
Date d'inscription
vendredi 29 novembre 2002
Statut
Membre
Dernière intervention
21 septembre 2010

24 nov. 2006 à 00:12
je l'ai corrige et je n'ai plus de pb

Voici mon code:
Private Sub Command1_Click()
'=======================================================
'Creation du search.pro
'=======================================================
Dim SearchPro As String
SearchPro = "c:\cao\search1.pro"
Kill SearchPro
Open SearchPro For Binary As #1
Dir1.Path = text6_chemin_projet.Text
For i = 0 To Dir1.ListCount
Put #1, , Dir1.List(i) & vbNewLine
Next i
Close #1

End Sub


Merci de ton aide
Bonne nuit
0
Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
24 nov. 2006 à 00:19
bien vu
seulement quand le fichier n'existera pas ça aboutira a un plantage
vaut mieux tester son existence avant:
     If Dir(SearchPro) <> "" Then Kill SearchPro

Daniel
0
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
24 nov. 2006 à 00:19
Vérifie que SearchPro existe (avec Dir) avant de faire un Kill pour éviter une erreur...

MPi
0
TMONOD
Messages postés
256
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
6 novembre 2009
1
24 nov. 2006 à 00:34
Bonsoir,
Si ca peut aider, une petite fonction qui ramène tous les fichiers d'un répertoire passé en paramètre. (Une version récursive pour explorer les sous répertoire est facile à faire à partir de là)

'une petite sub pour faire la démo

Sub testerListFichier()
Dim fichier As String
Dim tbvar() As String, i As Integer
tbvar = GetFilesFromPath("c:")



For i = 0 To UBound(tbvar)
    Debug.Print ">" + tbvar(i)
Next

End Sub

'La fonction
Function GetFilesFromPath(path As String) As String()
Dim files() As String, fichier As String, i As Integer
ReDim files(100)
i = 0
fichier = Dir(path, vbNormal Or vbHidden Or vbArchive Or vbReadOnly)
While fichier <> ""
    files(i) = fichier
    If i = UBound(files) Then
        ReDim Preserve files(i + 10)
    End If
    i = i + 1
    fichier = Dir()
Wend
ReDim Preserve files(i)
GetFilesFromPath = files
End Function








Jcbé[^]
0
JessicaR44
Messages postés
116
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
29 septembre 2013

24 nov. 2006 à 20:25
Bonsoir rober,


La commande DOS que tu cherches est dir c:\cao\ /s > c:\cao\search.pro
(le signe > provoquera la redirection que tu veux vers le fichier c:\cao\search.pro). Ce fichier est lisible avec le bloc-notes. 
Jessica
0