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 :

classement fichiers par date dans nouveau répertoire [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut classement fichiers par date dans nouveau répertoire
    Bonjour
    Sous Windows 10
    Suite à un plantage de disque dur j’ai récupéré 25000 fichiers photo.
    Je voudrai les déplacer dans des répertoires qui seraient nommés avec la date de création ou de modification du premier fichier du répertoire de récupération, puis rechercher tous les fichiers ayant la même date et les déplacer dans le répertoire qui vient juste d’être créer et recommencer l’opération jusqu’à ce que le répertoire d’origine soit vide.
    Le simple fait de les déplacer change la date des fichiers. Est-il possible de remettre l'ancienne date?
    Je n’ai pas beaucoup de connaissance en batch (en programmation en générale) pourriez-vous m’aider ? svp

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 546
    Points : 1 084
    Points
    1 084
    Par défaut
    Bonjour,
    Oui c'est possible, même remettre l'ancienne date est possible via l'utilisation d'une commande externe.
    Je vais voir ce que je peux faire pour vous, mais ça va certainement prendre quelques jours car je suis très très occupé cette semaine.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par barnabe0057 Voir le message
    Bonjour,
    Oui c'est possible, même remettre l'ancienne date est possible via l'utilisation d'une commande externe.
    Je vais voir ce que je peux faire pour vous, mais ça va certainement prendre quelques jours car je suis très très occupé cette semaine.
    je viens de me rendre compte qu'en copiant les fichiers il ne change pas de date. il faudrait donc les copier puis les effacer du répertoire d'origine ce qui eviterait l'utilisation d'une commande externe.

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Voici un exemple en PowerShell basé sur la date de dernière modification

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dossier = "C:\mon dossier a traiter"
     
    Get-ChildItem -LiteralPath $dossier -File -Force | ForEach-Object {
        $cible_folder = "$($_.DirectoryName)\$($_.LastWriteTime.ToString("MM_dd_yyyy"))"
        if (!(Test-Path -LiteralPath $cible_folder -PathType Container))
        {
            New-Item -Path $cible_folder -ItemType Directory
        }
        $_ | Move-Item -Destination $cible_folder -Force
    }

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Voici un exemple en PowerShell basé sur la date de dernière modification

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dossier = "C:\mon dossier a traiter"
     
    Get-ChildItem -LiteralPath $dossier -File -Force | ForEach-Object {
        $cible_folder = "$($_.DirectoryName)\$($_.LastWriteTime.ToString("MM_dd_yyyy"))"
        if (!(Test-Path -LiteralPath $cible_folder -PathType Container))
        {
            New-Item -Path $cible_folder -ItemType Directory
        }
        $_ | Move-Item -Destination $cible_folder -Force
    }
    le script a bien fonctionné, mais il a tout mis dans le même répertoire car après vérification la date de modification est la date de récupération pour tous les fichiers

  7. #7
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    La date de modification paraissait la plus pertinente.
    La date de création te paraitrait mieux ?

    Pour ma part, si c'est des "vrais" photos je préfère m'appuyer sur les dates "Date de prise de vue" dans le tag EXIF de chaque fichier.

    Vérifie ce qu'il en ait.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    La date de modification paraissait la plus pertinente.
    La date de création te paraitrait mieux ?

    Pour ma part, si c'est des "vrais" photos je préfère m'appuyer sur les dates "Date de prise de vue" dans le tag EXIF de chaque fichier.

    Vérifie ce qu'il en ait.
    oui mais la date création me permet de les trier par thème et par évènement.
    donc oui la date de création est la plus opportune et la date de modification est la même sur tous les fichiers

  9. #9
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Ok, voici avec la date de création

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dossier = "C:\mon dossier a traiter"
     
    Get-ChildItem -LiteralPath $dossier -File -Force | ForEach-Object {
        $cible_folder = "$($_.DirectoryName)\$($_.CreationTime.ToString("MM_dd_yyyy"))"
        if (!(Test-Path -LiteralPath $cible_folder -PathType Container))
        {
            New-Item -Path $cible_folder -ItemType Directory
        }
        $_ | Move-Item -Destination $cible_folder -Force
    }

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Ok, voici avec la date de création

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dossier = "C:\mon dossier a traiter"
     
    Get-ChildItem -LiteralPath $dossier -File -Force | ForEach-Object {
        $cible_folder = "$($_.DirectoryName)\$($_.CreationTime.ToString("MM_dd_yyyy"))"
        if (!(Test-Path -LiteralPath $cible_folder -PathType Container))
        {
            New-Item -Path $cible_folder -ItemType Directory
        }
        $_ | Move-Item -Destination $cible_folder -Force
    }
    539 répertoires plus loin...
    CA MARCHE !!
    Bravo !!

    Pour les gens qui liraient ce post : le script ne fonctionne pas à partir d'un fichier. Il faut lancer PowerShell en admin, puis copier le script directement dans PowerShell.

    Un grand MERCI ericlm128 !
    Tu es super réactif
    Bonne fin de journée

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    De rien

    Pour les gens qui liraient ce post : le script ne fonctionne pas à partir d'un fichier. Il faut lancer PowerShell en admin, puis copier le script directement dans PowerShell
    Surement un "problème" lier à la politique de sécurité d'exécution des scripts PowerShell, cela se résout simplement.

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

Discussions similaires

  1. [XL-2007] Trier par date dans un répertoire Windows des fichiers
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/08/2018, 23h59
  2. Mettre dans l'ordre des fichiers par date de modification
    Par ftrap dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2012, 00h15
  3. [Batch] Récupérer taille fichiers par jour dans un répertoire
    Par Korben-Dallas dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/10/2011, 11h28
  4. Réponses: 1
    Dernier message: 20/07/2010, 09h53
  5. Identification et Extraction de fichier dans nouveau répertoire
    Par Geprocor dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 04/04/2008, 15h22

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