IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Liste des derniers fichiers ajoutés dans un répertoire (chemin sup 256 caractères) [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut Liste des derniers fichiers ajoutés dans un répertoire (chemin sup 256 caractères)
    Bonjour,

    Je cherche à lister les fichiers dont le chemin complet dépasse les 256 caractères et qui datent du jour (ajout ou modification) sur un poste en Windows 7 Pro.

    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir "d:\" /s /b | sort /+256 /r > NewFilesMore256.txt
    me donne les chemins de plus de 256 caractères.

    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir "d:\*.*" /s | find "%date%"  > NewFilesToday.txt
    me donne les fichiers "du jour".

    J'aimerais combiner les deux mais j'ai beau retourner ça dans tous les sens, ça bloque...
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir "d:\*.*" /s /b | find "%date%"  | sort /+256 /r
    ne renvoie rien.

    Auriez-vous une piste ?

    Par avance, merci de vos propositions.

  2. #2
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut,

    Comme piste sache que "sort" n'est pas une commande de filtrage, mais de tri, et quand tu lances une instruction "dir" avec le commutateur "/b", ça ne renvoie pas de dates, c'est pour ça que "find" ne trouve rien... cela dit, avec un petit "for", tu en viendrais facilement à bout... tape "for /?" pour plus d'infos sur cette commande...

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Merci de ta réponse.

    J'imagine qu'il faut donc partir sur un FOR /r (parcourt tous les répertoires).

    Mais je retombe sur un problème. Je ne connais pas la commande qui donne la taille du chemin du fichier actif. Car j'imagine que je pourrais utiliser un IF basé sur la taille du chemin et éventuellement sur la date d'ajout du fichier.

  4. #4
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Voici une petite illustration pour t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    set file1=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+256
    set file2=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+63
    set file=%file1%
    if not "%file:~256%"=="" (echo file1 plus de 256) else (echo file1 moins de 256)
    set file=%file2%
    if not "%file:~256%"=="" (echo file2 plus de 256) else (echo file2 moins de 256)
    pause

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    Merci de ton aide.

    J'ai essayé plusieurs commandes, mais rien n'y fait.
    La dernière en date est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for /r d:\_downloads\ %%a in (*.*) do (
      if not "%%a:~256%"=="" (echo aplusde256) else (echo moinsde256)
    	)
    Mais ça ne fonctionne pas.

    Malheureusement, j'ai dû chercher d'autres solutions et j'ai réussi à faire un script avec LogParser.exe. ça me retourne bien ce que je cherchais.

    Je clos la question.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste déroulante de fichiers (.txt) dans des répertoires spécifiques
    Par iliaseyah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2015, 15h23
  2. [AC-2010] Récupérer dans une table la liste des fichiers contenus dans un répertoire
    Par possible924 dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/02/2013, 22h00
  3. Réponses: 14
    Dernier message: 05/05/2011, 10h59
  4. Réponses: 4
    Dernier message: 12/10/2009, 17h55
  5. Menu dynamique - liste des derniers fichiers ouverts
    Par Elmotardo dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 08/07/2009, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo