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 :

Move-Item, LastWriteTime et Sed


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut Move-Item, LastWriteTime et Sed
    Bonsoir à tous,

    J'ai des photos. Beaucoup. Qui ne sont pas obligatoirement rangées au bon endroit. Je m'en suis aperçu quand la date de mon mariage n'était pas la bonne...
    J'ai vu que, dans les propriétés de ces photos, LastWriteTime correspondait à la date de la prise de vue.
    Je peux donc scripter le rangement de mes photos...
    je voudrais récupérer le LastWriteTime, qui a cette tête là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ${PhotoList} = Get-ChildItem ${SourceDirectory} -Recurse
    foreach (${Photo} in ${PhotoList}) {
        If ( Test-Path ${Photo} -PathType Container ) {
            Write-Host ${Photo}.LastWriteTime
        }
    }
    Qui me renvoie, par exemple:
    Ensuite vérifier si le répertoire 2006-05-28 existe, et, si tel n'est pas le cas, le créer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ( !(Test-Path ${TargetDirectory}) ) {
      New-Item ${TargetDirectory} -type directory
    }
    Une fois que le bon répertoire est créé, déplacer le contenu au bon endroit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Move-Item ${Photo}  ${TargetDirectory}
    Il faudra encore faire des contrôles (est-ce qu'un fichier avec ce nom là existe déjà ou pas...) mais mon gros problème, dans l'immédiat, est de passer de mon LastWriteTime comme ça: 2006/05/28 à mon ${TargetDir} comme ça: 2006-05-28

    Des idées ? Un SED version powershell ?

    D'avance Merci,

    Jean-Bernard

  2. #2
    Membre émérite Avatar de messinese
    Homme Profil pro
    IT Security Consultant
    Inscrit en
    Septembre 2007
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IT Security Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 429
    Par défaut
    Bonjour,

    en attribuant cette valeur (la date donc) a une variable il est possible de faire simplement un
    .replace
    un peu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $source=("15/01/12").replace('/','-');
    qui, lorsqu'on le 'printe' a l'écran renvois :

    Bien cordialement.

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Ou comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Photo.LastWriteTime.ToString('dd-mm-yyyy')
    Citation Envoyé par jeanbernard.weck Voir le message
    Un SED version powershell ?
    Sous PS on manipule des objets, des propriétés, des méthodes...
    Le parsing de texte on l'utilise quand on ne peut pas faire autrement.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Par défaut
    Oui! Powershell et la manipulation d'objets c'est encore tout nouveau pour moi... Mais bien pratique. J'ai réécrit le même script 3 fois de suite en trouvant des reccourcis objets intéressants... La première version faisait 25-30 lignes, la dernière, seulement 5!

    Donc, merci pour ce "ToString"!

Discussions similaires

  1. QTreeView Move item
    Par epsilon68 dans le forum Qt
    Réponses: 15
    Dernier message: 23/10/2008, 16h05
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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