Commande msdos dir depuis un executable [Résolu/Fermé]

Signaler
-
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
-
Bonjour,

La commande "dir" ci dessous lancé depuis un exe ou une application windows ne renvoie pas le meme nombre de dossier que la meme commande "dir" lancée depuis cmd ou un batch.
En effet certains repertoires sont bizarrement ignorés (environ 200 sur 23000 sur mon disque dur).

Commande exacte "dir /s /ad /b c:\ > repertoires.txt"

Quelqu'un aurait il une explication ou une piste sur les possibles raisons de ces differences ?


5 réponses

Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 167
pour moi, un répertoire est un fichier, de type répertoire, comme il y a des lnk, etc
que répond
attrib C:\Windows\System32\config\systemprofile\AppData\LocalLow\Sun 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
5093
Date d'inscription
mercredi 19 décembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2015
709
Bonjour,

Deux pistes de recherche possibles, à mon avis ...

Sans savoir quel est le langage utilisé par le programme, n'est-il pas possible que celui-ci inclue/exclue aussi les fichiers pourvus d'un attribut Hidden (/ah) ou System (/as) ?

Autre possibilité, si le file system accepte les longs noms de fichiers, il est possible que la commande DOS (ou batch) ignore les noms de fichiers comprenant une espace.

Pour plus de facilité, dans lequel des deux cas manque-t'il des noms de fichiers ?

Quand il n'en restera plus que deux manquants, il faudra voir si le programme insère aussi le répertoire courant (.) et le répertoire parent (..).

Je te remercie pour ta reponse mais en ajoutant le parametres /ad la commande dir liste tous les repertoires (cachés et systeme inclus), en incluant le parametre /b les "." et ".." sont ignorés.
Le probleme est que la meme commande "dir /s /ad /b c:\ > repertoires.txt" lancé directement en double cliquant sur le fichier batch ne donne pas le meme resultat qu'en lancant le batch soit depuis un exe ecrit en c++ soit en javascript (hta) ou meme avec cmd.exe.
Si quelqu'un d'autre a une piste, je suis preneur !
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 167
hello
et en comparant le nom, les attributs, la location, etc d'un fichier qui manque, n'y a -t-il rien de particulier ?
Merci de t'interresser au sujet mais il s'agit de repertoires et non de fichiers et pour repondre a ta question, rien de special apparement.
Voici deux exemples de repertoires qui n'apparaissent pas en lancant le batch en c++ avec shellExecute mais qui apparraissent sans probleme en lancant le meme batch par double click :
C:\Windows\System32\config\systemprofile\AppData\LocalLow\Sun
C:\Windows\System32\config\systemprofile\AppData\LocalLow\Sun\Java