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 Membre Dernière intervention 23 décembre 2008 24
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 34
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 34
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 17 août 2018 23
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
Rejoignez-nous