DIR d'un seul sous-dossier [BATCH] - Shell/Batch - Programmation
Marsh Posté le 12-07-2010 à 17:01:38
C'est pas très clair pour moi. Tu connais le nom du 1er "sous dossier" à l'avance? Parce que dans ce cas:
Code : |
Te donnera la ligne contenant entre autre la date de création de "sous dossier 1".
Mais avec plus de précision je pourrai mieux t'aider.
Marsh Posté le 13-07-2010 à 20:28:06
Pas bête !
Le mieux ca serait même de stocker le nom du dossier parent dans une variable puis de faire le find de la même variable puis de stocker chaque info retournée dans un fichier texte.
Je teste ca lundi prochain et je te dit.
Merci
Marsh Posté le 20-07-2010 à 15:20:46
Ngkreator, ta petite ligne m'aide beaucoup merci
Cependant elle sort le résultat sous cette forme :
R‚pertoire de xxxxxxxx
26/01/2010 16:59 <REP> xxxxxxxxx
Comment n'afficher que
26/01/2010 16:59 <REP> xxxxxxx
??
merci d'avance
Marsh Posté le 20-07-2010 à 15:49:51
Ceci devrait faire l'affaire :
Code :
|
Jean-Pierre.
Marsh Posté le 21-07-2010 à 11:37:42
Merci aigle ca marche comme je voulais.
L'autre problème que je rencontre c'est que si dans L:\Dossier1\Sous-Dossier1\ Sous-Sous-Dossier\j'ai des fichiers ecrits ce jour et d'autres non, bah la date de dernière écriture de Sous-Dossier 1 et Dossier ne sont pas mis à jour.
Je ne peux donc pas savoir quelle est la dernière date de sauvegarde du profil sauf si je scanne tous les sous dossier de chaque profils et que je fait je sors la date d'écriture la plus récente parmi tous les fichiers.
Je me demande si ce que je dois faire est vraiment faisable de cette manière. le batch a ses limites
Marsh Posté le 28-07-2010 à 18:25:20
et un double for pourrait aussi t'aider
for /f "tokens=*" %i in ('dir /ad /b ') do @dir /ad /b "%i"
Par contre le batch n'est pas adapté pour la gestion des dates.
nb : s'il s'agit de profils windows, tu peut checker le fichier user.dat
Marsh Posté le 27-12-2010 à 14:38:04
Salut
Petite question, je fais un dir d'un fichier qui porte le même nom dans plusieurs dossiers.
%a est égal au dossier concerné dans ma boucle (qui parcourt tous les dossiers).
rsycnlog.txt est le fichier dont je souhaite obtenir la date.
Voilà la structure
Dossier profils
|
|_ Dossier user 1
|_ Rsynclog.txt
|_ Dossier user 2
|_ Rsynclog.txt
|_ Dossier user 3
| |_ Rsynclog.txt
|
|_ Dossier User n
|_ Rsynclog.txt
Ma boucle va parcourir chaque sous dossier et je voudrais que la sortie de ma commande soit au format :
Dossier User 1 Rsynclog.txt 27/12/2010 13:54
Dossier User 2 Rsynclog.txt 25/12/2010 09:36
Etc...
Aujourd'hui ma commande est la suivante
For /F %a in (C:\liste_user) do dir /t:w /Dossier/Dossier_user/rsynclog.txt
Volume in drive C: is Profils
Volume Serial Number is XXXX-XXXX
Directory of /Dossier/Dossier_User/
27/12/2010 13:54 2,654 Rsynclog.txt
1 File(s) 2,654 bytes
0 Dir(s) 32,263,265 bytes free
Puis-je formater ma sortie de facon a ce qu'elle ressemble ou s'approche du format que je souhaite?
Merci d'avance pour vos propositions et/ou solution
Marsh Posté le 27-12-2010 à 14:44:59
faisable oui, mais relou.
batch n'est vraiment pas l'idéal dès veut récup les infos des fichiers (taille, date,...)
dir /s Rsynclog.txt | find "Rsynclog.txt " peut être
Sinon faut jongler avec 2 boucles : l'une sur les fichiers et l'autre sur le résultat de la commande.
Marsh Posté le 27-12-2010 à 15:27:10
Bonne idée sauf que comme ce sont des profils utilisateurs y'a des centaines de sous-dossiers donc la commande met trop de temps
Marsh Posté le 27-12-2010 à 19:55:22
alors un truc du genre :
for /f %i in ('dir /b ') do dir %i\Rsynclog.txt | find "Rsynclog.txt
mais t'auras pas le répertoire du coup.
Marsh Posté le 12-07-2010 à 10:15:29
Bonjour
J'ai un arborescence du type :
Dossier 1
-- Sous dossier 1
Dossier 2
-- Sous dossier 2
etc...
Mon Dossier 1 et mon sous dossier 1 ont le même nom.
Ce que je souhaite faire c'est faire un dir de seulement des dossiers et du premier sous dossier et récupérer la dernière date d'écriture.
En cherchant sur le net j'avais trouvé un code qui, dans une boucle, effectuait cette manipulation et l'écrivait dans un fichier texte grace à " > "
Mais comme il était dans la boucle je n'obtenais que les infos du dernier dossiers.
Quelqu'un saurait-il comment faire si cela est possible en batch.
Merci d'avance
Message édité par hypershade le 12-07-2010 à 10:16:20
---------------
Hypershade's Gallery