Suppression fichier si existe dans un autre dossier
Bonjour à tous,
Dans le même contexte que mon post précédent (Suppression fichier si taille, téléchargement automatique d'images météorologiques pour travaux climatologiques perso), j'ai besoin de créer un script qui vérifie si des fichiers téléchargés dans un dossier x existent déjà dans un dossier y.
Pour mémoire, j'ai donc un script qui me télécharge à intervalle régulier toute une foule d'images météos. Ces fichiers se retrouvent dans un dossier transitoire, et doivent être classés par nom dans un dossier définitif. Ce que je cherche à faire, c'est rajouter dans ce script une fonction qui vérifie si le fichier téléchargé existe déjà dans le dossier définitif, si oui alors il faut le supprimer du dossier transitoire, et si non alors il faut le transférer dans le dossier définitif.
En cherchant sur google et auprès de nos collègues anglosaxons, j'ai bricolé ceci :
Code:
Get-ChildItem -Recurse -path $dossierTransitoire -filter "$nom*.jpeg" | ForEach-Object {If ((Test-Path "$dossierDefinitif\$_")) {Remove-Item $_.FullName -Force} Else {Move-Item -Destination $dossierDefinitif}}
Bien entendu, cela ne fonctionne pas. En fait, j'ai l'impression que tout se passe comme si :
- une liste des fichiers présents dans le dossier transitoire est bien créée,
- mais si l'un des fichiers du dossier transitoire existe déjà dans le dossier définitif, alors tous les fichiers du dossier transitoire sont supprimés.
Ce qu'il faudrait faire :
- si le fichier nom1 existe déjà dans le dossier définitif, alors supprimer le fichier nom1 du dossier transitoire, sinon le transférer dans le dossier définitif,
- si le fichier nom2 existe déjà, alors supprimer nom2 sinon le transférer,
- ...etc...
- si le fichier nom1000 existe déjà, alors supprimer nom1000 sinon le transférer...
Je suppose que la "fonction" Test-Path n'est pas celle qui convient dans la condition If, mais je ne sais quelle fonction employer. Par ailleurs je reste maladroit avec "l'argument" $_ car je ne comprends pas exactement à quelle valeur il renvoie.
Une idée ?