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 :

Récupérer la date de création des fichiers [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut Récupérer la date de création des fichiers
    Bonjour,

    J'ai un petit script powershell qui permet de convertir des fichiers xlsx en csv qui fonctionne.
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach($file in (Get-ChildItem "Mettre le chemin ou sont les fichiers xlsx")) {
     
      $newname = $file.FullName -replace '\.xlsx$','.csv'
      $ExcelWB = new-object -comobject excel.application
      $Workbook = $ExcelWB.Workbooks.Open($file.FullName) 
      $Workbook.SaveAs($newname,6)
      $Workbook.Close($false)
      $ExcelWB.quit()
     
    }

    Le code ci-dessus fonctionne, par contre ce que je cherche à faire, c'est lorsqu'il crée le fichier le fichier csv il récupère la date de création du fichier source pour créer a la même date de création le fichier csv

    Je trouvé ce code permettant de récupérer la date de création du fichier
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $lastModifiedDate = (Get-Item "C:\tmp\toto.xlsx").LastWriteTime
    echo $lastModifiedDate
     
    jeudi 24 juin 2021 14:27:26

    Cordialement,
    Seb

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    La date de création c'est cette propriété : CreationTime


    Avec cette commande (Get-Item -LiteralPath "toto.txt") | gm tu peux remarquer ceci CreationTime Property datetime CreationTime Property datetime CreationTime {get;set;}
    La propriété CreationTime est accessible en écriture (set) et est au format datetime


    Par exemple, avec cette commande je modifie la date de création a "il y a 1 an"
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    (Get-Item -LiteralPath "toto.txt").CreationTime = (Get-Date).AddYears(-1)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Bonjour ericlm128,

    J'ai pas bien compris ta réponse.
    j'ai testé .CréationTime ça donne le même résultat que .LastWriteTime

    Mon problème, c'est que je sais pas comment l'ajouter dans mon code pour lorsqu'il crée le csv, il le crée avec la date de création du fichier source xlsx
    J'ai bien trouvé d'autre commande comme
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-Childitem | select name,Directory,CreationTime,LastWriteTime,LastAccessTime
    mais je sais pas comment dire a mon script lorsqu'il crée le fichier csv il lui donne la même date de création du fichier source.
    Ps: je débute en PowerShell :-(

    Cordialement,
    Seb

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Voir directement la documentation pour la définition exacte des propriétés (mais le nom est assez parlant il n'y a pas de piège)

    https://docs.microsoft.com/fr-fr/dot...e?view=net-5.0

    https://docs.microsoft.com/fr-fr/dot...e?view=net-5.0

    Je suis sur mobile la je regarderais pour te donner un code plus adapter a ton besoin, mais dans l'idée :
    Tu créer ton csv
    Tu récupère la date du fichier xlsx
    Tu modifie la date de ton csv

    Status déjà sur la/les dates que tu veux mettre à jour

    PS : ça a un intérêt réel ce que tu veux faire ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Bonjour ericlm128,

    J'ai trouvé, le script fonctionne bien

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    foreach($file in (Get-ChildItem "../Temp")) {
     
      $newname = $file.FullName -replace '\.xlsx$','.csv'
      $date = (Get-Item "../*.xlsx").LastWriteTime
      $ExcelWB = new-object -comobject excel.application
      $Workbook = $ExcelWB.Workbooks.Open($file.FullName) 
      $Workbook.SaveAs($newname,6,$date)
      $Workbook.Close($false)
      $ExcelWB.quit()
      $lastModifiedDate = $file.LastWriteTime
      (Get-ChildItem $newname).LastWriteTime = $lastModifiedDate
     
    }

    Il fallait ajouter ces 2 lignes
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $lastModifiedDate = $file.LastWriteTime
     (Get-ChildItem $newname).LastWriteTime = $lastModifiedDate

    C'est toi qui m'a mis sur la piste. Merci ;-)

    Cordialement,
    Seb

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut

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

Discussions similaires

  1. [XL-2000] Recuperer la date de creation d'un fichier
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2018, 11h58
  2. [D7 - Word/PDF] Dates de modification des fichiers
    Par dacid dans le forum Composants VCL
    Réponses: 7
    Dernier message: 09/08/2007, 10h02
  3. Problème de précision sur date de création des fichiers
    Par Bruno Orsier dans le forum Delphi
    Réponses: 2
    Dernier message: 07/06/2007, 14h26
  4. [XSL~FO] Creation des fichiers PDF
    Par kodo dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/03/2007, 12h29
  5. creation des fichiers SO
    Par torNAdE dans le forum C++
    Réponses: 3
    Dernier message: 19/10/2006, 15h07

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