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 :

Copier et renommer des fichiers


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut Copier et renommer des fichiers
    Bonjour à tous.

    J'ai actuellement réaliser un script permettant de créer plusieurs dossiers et de copier des fichiers dans un dossier.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    'Création du dossier DossierAnnee'
    [String]$DossierAnnee = $(Get-Date -UFormat "%Y")
    If (-not (Test-Path "C:\Test2\"))
        {
        New-Item -path "C:\Test2\" -Name $DossierAnnee -ItemType directory
        }
     
     'Création du dossier DossierMois'   
    [String]$DossierMois = $(Get-Date -UFormat "%B")
    New-Item -path "C:\Test2\$DossierAnnee\" -Name $DossierMois -ItemType directory
     
     
    'Creation Date'
    $today = $(Get-Date -uFormat "%Y%m")
    'Dossier source'
    $source = "C:\Model\*"
     
    'Dossier Destination'
    $destination = "C:\Test2\$DossierAnnee\$DossierMois\"
     
    'Copie et renommage des fichiers'
    foreach ($file in $destination)
    {
     Copy-Item $source $destination | Rename-Item -NewName {$_.Name -replace ".xlsx","$today.xlsx"}
     
     'Rename-Item $file $new'
    }

    Désormais, j'aimerais effectuer un renommage de fichiers avec la date du jour (nomdufichier + date). Cependant, je n’y arrive pas. Avez-vous des idées pour résoudre ce problème?

    Merci de votre aide

  2. #2
    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
    Salut,
    cette fonction peut peut-être t'aider
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function New-FileNameTimeStamped{
     param($FileName,$Date=(Get-Date),$Format='dd-MM-yyyy-HH-mm-ss')
     
      $SF=New-object System.IO.FileInfo $FileName 
      "{0}\{1}-{2:$Format}{3}" -F $SF.Directory,$SF.BaseName,$Date,$SF.Extension
    }#New-FileNameTimeStamped

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut
    Merci Laurent mais je comprends pas trop ta fonction peux tu l'expliquer en détail stp?

  4. #4
    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
    Tu lui passes le nom du fichier ( qui peut ne pas exister ) :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    New-FileNameTimeStamped -FileName C:\Temp\NotExist
    #C:\temp\NotExist-24-02-2015-11-04-20
    Tu peux également lui passer une date et un format de date :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    New-FileNameTimeStamped -FileName C:\Temp\NotExist -Date ([DateTime]::Now.AddDays(-365)) -Format 'dd-MM-yyyy'
    #C:\temp\NotExist-24-02-2014

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 22
    Par défaut
    Au risque de passer pour un gros nul, je vois pas où l'implémenter dans mon code

  6. #6
    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
    C'est la construction du nom de fichier qui pose pb ou uniquement le renommage avec le nouveau nom ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2008, 12h23
  2. renommer des fichiers
    Par avantoux dans le forum Windows
    Réponses: 4
    Dernier message: 27/12/2005, 16h01
  3. Renommer des fichiers
    Par Cathy dans le forum Linux
    Réponses: 3
    Dernier message: 12/09/2005, 17h24
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  5. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 00h35

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