Question Copier fichier en fonction de sa date de création

Plus d'informations
il y a 10 ans 10 mois #19761 par Evea
Bonjour à tous.

Je me permets de (re)venir demander de l'aide sur ce forum qui m'a été très utile il y a quelques mois :)

Voila : ce que je dois faire ne me parait pas très compliqué (en fait, c'est très facile je pense, même), mais je suis une brêle en programmation/scripting, du coup, un petit rien peut s'avérer très bloquant...
Bref.

Je veux créer un script qui :

- copie un fichier d'un répertoire X à un répertoire Y
- MAIS ce script ne doit copier QUE le fichier dont la date de création est la date du jour (et qui, accessoirement ne contient que \"blabla\" dans le titre, mais ça, j'ai trouvé comment faire)

Voila ce que j'ai pour le moment :

[code:1]$repertoire = 'C:\Users\nom_user\Documents\X\'
$Fichiers = Get-ChildItem $repertoire
$cible = 'C:\Users\nom_user\Documents\Y'
$date = Get-Date -Format 'd/MM/yyyy'

Foreach ($Fichiers in Get-ChildItem $repertoire) {
if ($Fichiers.Name -match 'blabla' -and $Fichiers.CreationTime -eq $date){
Copy-Item -Path $Fichiers.FullName -Destination $cible
Write-Host 'Le fichier' $Fichiers 'a été copié'
}
}[/code:1]

J'arrive à copier les fichier qui contiennent \"blabla\" dans le titre.
En revanche, copier les fichiers dont la date de création est \"aujourd'hui\"... ça ne fonctionne pas.
Je pense que le problème se situe sur le format de la date.

J'avais essayé au début avec \"dddd d MMM yyyy\", mais ça ne fonctionnait pas mieux...

La date de création d'un fichier est, dans ses \"Propriétés\" au format 'dddd d MMM yyyy H:m'.
Mais dans l'explorateur (dans le volet en bas), elle est au format 'd/MM/yyyy H:m'.

Or, moi, je ne veux pas travailler sur l'heure, mais uniquement sur la date, et je me demande si ce n'est pas ça qui bloque...

Je remercie d'avance ceux qui se pencheront sur mon problème et qui m'aideront à le résoudre :)

EDIT : j'ai un peu de progrès.
J'ai mis mon format de date dans ma variable à 'MM/d/yyyy', et en demandant à mon script de me copier les fichiers dont la date était INFERIEURE (donc -lt) à la date du jour, il m'a bien copié deux fichiers.
Mais en mettant -eq, ça ne fonctionne toujours pas...

EDIT2 (désolée) : je crois que mon soucis est résolu ! Il suffisait de lui demander de copier les fichiers dont la date de création est 'plus grande ou égale à la date du jour\" (-ge)
Dans ce cas, je suis curieuse de savoir pourquoi -eq ne fonctionnait pas...
Si quelqu'un à une réponse, je suis preneuse !

Message édité par: Callypso, à: 22/05/15 16:40

Message édité par: Callypso, à: 22/05/15 16:43<br><br>Message édité par: Callypso, à: 22/05/15 16:43

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19763 par Laurent Dardenne
Callypso écrit:

Or, moi, je ne veux pas travailler sur l'heure, mais uniquement sur la date, et je me demande si ce n'est pas ça qui bloque...

C'est fort probable, essaie avec :
[code:1]$Date=Get-Date
$Date.Date
#Et donc $Fichiers.CreationTime.CreationTime.Date
[/code:1]
Quant au format c'est pour l'affichage, cela ne change pas la valeur de la donnée, midi c'est tjr à 12 h :)

Ceci dit la variable Fichiers avec un s, me laisse dubitatif ...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.041 secondes
Propulsé par Kunena