[POWERSHELL] Sélectionner des fichiers en fonction d'une date
Posté : mer. 1 juin 2022 14:35
Bonjour à tous,
Je sollicite votre aide car dans le cadre d'un petit projet je souhaite copier des fichiers d'un répertoire A vers un répertoire B, étant débutant je bloque sur un point.
Ma contrainte est la suivante: sur le répertoire A sont déposé de temps en temps des fichiers (plusieurs sur un même journée et qui contient des fichiers de jours précédents), cependant je ne sais pas le jour exact de la dépose de ces fichiers.
J'ai donc commencé un début de script Powershell qui vient parcourir mon répertoire et récupérer la date de création du dernier fichier .xlsx créé avec un format de date choisi (qui ne contient pas l'heure de création).
$Select_File=Get-ChildItem "$Export\*.xlsx"|Sort-Object {$_.CreationTime} | select-Object -last 1 | select @{n='CreationTime';e={$_.CreationTime.ToString('dd/MM/yyyy')}}
Une fois cette valeur récupérée je voudrais la comparer à l'intégralité des fichiers du répertoire A afin de stocker dans une variable de type $File uniquement les fichiers qui ont été créés le même jour que ce derniers fichiers pour ensuite pouvoir les copier dans mon répertoire B.
C'est là que je bloque, j'ai essayé d'utiliser la ligne de code suivante pour sélectionner mes fichiers fichier en utilisant un where{} mais cela ne fonctionne pas.
$File=Get-ChildItem "$Export\*.xlsx"|Sort-Object {$_.CreationTime} | where {$_.CreationTime -match $Select_File} | Select-Object
Pour information le paramètre "CreationTime" me ressort la valeur sous le format @{CreationTime=27/05/2022 01:56:02}
La ligne " select @{n='CreationTime';e={$_.CreationTime.ToString('dd/MM/yyyy')}} " me permet d'avoir un format @{CreationTime=27/05/2022}
Mon idée est donc de rechercher l'élément de date pour le faire matcher avec les fichiers que je veux récuper.
Edit: Il m'est impossible d'utiliser la date du jour, je dois uniquement utiliser la date de création du dernier fichier.
Voilà j'espère que quelqu'un pourra m'aider .
Merci à tous.
Je sollicite votre aide car dans le cadre d'un petit projet je souhaite copier des fichiers d'un répertoire A vers un répertoire B, étant débutant je bloque sur un point.
Ma contrainte est la suivante: sur le répertoire A sont déposé de temps en temps des fichiers (plusieurs sur un même journée et qui contient des fichiers de jours précédents), cependant je ne sais pas le jour exact de la dépose de ces fichiers.
J'ai donc commencé un début de script Powershell qui vient parcourir mon répertoire et récupérer la date de création du dernier fichier .xlsx créé avec un format de date choisi (qui ne contient pas l'heure de création).
$Select_File=Get-ChildItem "$Export\*.xlsx"|Sort-Object {$_.CreationTime} | select-Object -last 1 | select @{n='CreationTime';e={$_.CreationTime.ToString('dd/MM/yyyy')}}
Une fois cette valeur récupérée je voudrais la comparer à l'intégralité des fichiers du répertoire A afin de stocker dans une variable de type $File uniquement les fichiers qui ont été créés le même jour que ce derniers fichiers pour ensuite pouvoir les copier dans mon répertoire B.
C'est là que je bloque, j'ai essayé d'utiliser la ligne de code suivante pour sélectionner mes fichiers fichier en utilisant un where{} mais cela ne fonctionne pas.
$File=Get-ChildItem "$Export\*.xlsx"|Sort-Object {$_.CreationTime} | where {$_.CreationTime -match $Select_File} | Select-Object
Pour information le paramètre "CreationTime" me ressort la valeur sous le format @{CreationTime=27/05/2022 01:56:02}
La ligne " select @{n='CreationTime';e={$_.CreationTime.ToString('dd/MM/yyyy')}} " me permet d'avoir un format @{CreationTime=27/05/2022}
Mon idée est donc de rechercher l'élément de date pour le faire matcher avec les fichiers que je veux récuper.
Edit: Il m'est impossible d'utiliser la date du jour, je dois uniquement utiliser la date de création du dernier fichier.
Voilà j'espère que quelqu'un pourra m'aider .
Merci à tous.