Commande msdos dir depuis un executable

Résolu/Fermé
cybermichel - 26 juin 2012 à 06:45
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 28 juin 2012 à 07:45
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 ?


A voir également:

5 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
28 juin 2012 à 07:45
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
Non2 Messages postés 5103 Date d'inscription mercredi 19 décembre 2007 Statut Contributeur Dernière intervention 15 juillet 2015 757
26 juin 2012 à 09:30
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 (..).
0
cybermichel
26 juin 2012 à 17:49
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 !
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 juin 2012 à 12:11
hello
et en comparant le nom, les attributs, la location, etc d'un fichier qui manque, n'y a -t-il rien de particulier ?
0

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

Posez votre question
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
0