Question deplacement fichier suivant date de creation

Plus d'informations
il y a 9 ans 9 mois #21915 par sandrine
bonjour,
j'ai un dossier \"Commandes\"
dans ce dossier, j'ai un sous dossier \"Archives-Commandes\"

à chaque commande, un dossier pdf est créé sous le dossier commande, je voudrais que chaque soir, ces fichiers soit déplacés dans le sous-dossier \"Archives-Commandes\" avec un sous dossier par jour de création

ce qui me donnerait en dossier:

d:\commandes
|
|
archives-commandes
|
2016-06-08-mercredi
2016-06-09-jeudi

en cherchant sur le net, j'ai presque réussi à faire ce que je voulais avec ce code :


[code:1]$date = get-date -uformat %Y-%m-%d-%A
get-childitem \"d:\commandes\" | where{$_.creationtime -ge (get-date).date} |move-item -destination \"d:\commandes\archives-commandes\$date\\"
[/code:1]

mon problème, c'est qu'il ne cherche pas que dans le dossier commande, il cherche également dans le dossier archive

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

Plus d'informations
il y a 9 ans 9 mois #21956 par Arnaud Petitjean
Bonjour Sandrine,

Mon problème, c'est qu'il ne cherche pas que dans le dossier commande, il cherche également dans le dossier archive


Es-tu bien sûre de ce que tu avances ? En effet, pour que Get-ChildItem retournes le contenu des sous-dossiers, il faut lui préciser le commutateur -Recurse.

Arnaud<br><br>Message édité par: Arnaud, à: 17/06/16 11:25

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 9 ans 9 mois #21964 par sandrine
Bonjour,
je me suis mal exprimée
Ce que je voulais dire, c'est que la partie
[code:1]get-childitem \&quot;d:\commandes\&quot; | where{$_.creationtime -ge (get-date).date}[/code:1]

me retourne les fichiers du dossier \&quot;commande\&quot; mais également les sous-dossiers

par exemple
si un dossier \&quot;traitées\&quot; est créé le même jour que des fihiers commandes, ça me retourne

Répertoire : D:\commandes


Mode LastWriteTime Length Name
----



----
d
16/06/2016 19:38 Traitées
-a---- 16/06/2016 19:39 0 cb-3246.txt
-a---- 16/06/2016 19:39 0 cb-3247.txt
-a---- 16/06/2016 19:39 0 cb-3248.txt
-a---- 16/06/2016 19:39 0 cb-3249.txt


et je ne voudrais que les fichiers

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

Plus d'informations
il y a 9 ans 9 mois #21966 par Philippe
salut

je ne voudrais que les fichiers

si tu a une version 3 ou + de powershell tu peut utilisé l'option -file de get-childitem voir la doc ici
[code:1]get-childitem \&quot;d:\commandes\&quot; -file | where{$_.creationtime -ge (get-date).date}
[/code:1]

sinon sur la version 2 il te faut faire un filtre where comme ceci :
[code:1]Get-ChildItem -Path c:\temp | Where {-not $_.PSisContainer}[/code:1]
soit dans ton cas :
[code:1]Get-ChildItem -Path d:\commandes | Where {-not $_.PSisContainer -and $_.creationtime -ge (get-date).date}[/code:1]<br><br>Message édité par: 6ratgus, à: 17/06/16 09:26

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

Plus d'informations
il y a 9 ans 9 mois #21969 par Arnaud Petitjean
Hello !

OK je comprends mieux maintenant ce que tu voulais dire ;).

6ratgus t'as donné de bonnes infos, tu devrait pouvoir t'en sortir :).

Sinon, y a-t-il une raison particulière pour laquelle tu compares la date de création de tes fichiers à (Get-Date).date ?

Un simple (Get-Date) pourrait suffir je pense ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 9 ans 9 mois #22008 par sandrine
Bonsoir,
merci 6rtagus,
avec -file, j'arrive à ce que je voulais
c'était tout simple en fait:blush:

Sinon, y a-t-il une raison particulière pour laquelle tu compares la date de création de tes fichiers à (Get-Date).date ?


c'est ce que j'avais essayé au déubt, et ça ne me renvoyait aucun résultat, et en cherchant sur le net, je suis tombé sur (get-date).date qui fonctionnait

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

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