Question [Résolu] Lister et déplacer des fichiers

Plus d'informations
il y a 7 ans 9 mois #25627 par Michel
Bonjour à tous, je débute en PowerShell.
(J'en suis au stade avant le débutant)…

J'ai un disque dur rempli de photos, videos etc...Je vous laisse imaginer(Grosso modo 200000 fichiers, accro à la photo sous-marine et autre) et j'aimerais regrouper les fichiers par années/mois/Types de fichiers (jpg, avi, mov, etc.).

J'ai donc créé les dossiers comme ceci, je me doute qu'il y a surement plus simple, mais pas à mon niveau d'expérience, ...d'autant que je voudrais le faire pour les années 2002 à 2018...


#Créer le folder de l'année.
New-Item -Path L:\. -Name \"2015\" -ItemType \"directory\"
#Créer les dossiers de mois.
New-Item -Path L:\2015. -Name \"Janvier2015\" -ItemType \"directory\"


Ensuite je veux faire le tri et déplacer les fichiers qui sont un peu éparpillés dans tous les sens. la je l'ai fait pour les jpg, mais comme je dois faire ceci pour tous les types de fichiers qui se trouvent sur le disque si je dois trier chaque type de fichiers avec la commande que j'affiche ci-dessous, j'en ai pour des années à dépatouiller tout ca.

#Création de variable dans laquelle je place mon tri sur date des mois
$triphot = Get-ChildItem l:\ -Force -Recurse -Include *.avi, *.mp4, *.mpg, *.mov, *.mpeg |Sort-object|Select-Object |
Where-Object {($_.LastWriteTime -gt '01/01/2015') -and ( $_.LastWriteTime -lt '01/31/2015')}
#Déplacement des fichiers concernés dans le dossier ad hoc
move-item $triphot -Force -Destination L:\2015\Janvier2015

Donc plusieurs questions :
Comment faire pour rechercher tous ces fichiers en une seule commande?
Comment puis effectuer ce tri sur les mois, sans devoir faire une ligne par type de fichiers/ pour les douze mois de l'années étalés sur 20 ans? ....

J'espère que mes questions sont claires (plus que mon code en tous les cas, ;) )

Merci d'avance pour l'aide que vous pourrez m'apporter, en espérant un jour pouvoir être à même d'aider quelqu'un.

La pièce jointe TRIPHOTVID.ps1 est absente ou indisponible



Message édité par: Bullebizarre, à: 16/06/18 09:31<br><br>Message édité par: Arnaud, à: 20/06/18 13:49
Pièces jointes :

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

Plus d'informations
il y a 7 ans 9 mois #25630 par Philippe
salut Bullebizarre et bienvenue

je débute en PowerShell.
(J'en suis au stade avant le débutant)…

on est tous passer par la ;)
\&quot;avant debutant\&quot; c'est à dire que tu n'a jamais fais de programmation sur un autre language ?

Comment faire pour rechercher tous ces fichiers en une seule commande?

comme tu a fais ou j'ai pas compris !!

Comment puis effectuer ce tri sur les mois, sans devoir faire une ligne par type de fichiers/ pour les douze mois de l'années étalés sur 20 ans? ....

comme c'est long a expliquer je l'ai fait B)
un gros dans la premiere partie j'ai fait deux boucles imbriquer pour la creation des dossiers années et mois

dans la deuxième partie, plutôt que de passé par une variable, ce qui obligé de faire une boucle et de lire 204 fois la liste des fichiers (17ans X 12mois), j'ai fais le déplacement directement

ATTENTION : la source ne doit pas être dans le même dossier que la destination

[code:1]# Créer les dossiers des années et des mois.
$dest = \&quot;L:\test\\&quot; # le chemin doit finir par \&quot;\\&quot;
2002..2018 | foreach {
$annee = $_
1..12 | foreach {
$mois = get-date \&quot;01/$_/2000\&quot; -format 'MMMM'
New-Item -Path \&quot;$dest$annee\$mois$annee\&quot; -ItemType \&quot;directory\&quot; | out-null
}
}


# Fichiers vidéos divers
$source = \&quot;L:\\&quot; # le chemin doit finir par \&quot;\\&quot;
# Création de variable dans laquelle je place mon tri sur date des mois
Get-ChildItem $source -File -Force -Recurse -Include *.avi, *.mp4, *.mpg, *.mov, *.mpeg | foreach {
$fichier = $_
$annee = $fichier.LastAccessTime.Year
$mois = get-date $fichier.LastAccessTime -format 'MMMM'
# Déplacement des fichiers concernés dans le dossier ad hoc
move-item $fichier.FullName -Force -Destination \&quot;$dest$annee\$mois$annee\&quot;
}[/code:1]

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

Plus d'informations
il y a 7 ans 9 mois #25646 par Michel
Réponse de Michel sur le sujet Re:Lister et déplacer des fichiers
Merci beaucoup de ton aide,

Alors effectivement je n'ai jamais programmé avant, mais je m'y intéresse, je vais maintenant tester ce script et voir pour le comprendre et créer d'autres petit scriptS pour avancer et apprendre.

Je vais commencer per revoir la syntaxe parce que visiblement il y a des lacunes... mais bon, on n'est pas maitre en apprenant...

Bonne journée

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

Plus d'informations
il y a 7 ans 9 mois #25653 par Laurent Dardenne
Salut,
Bullebizarre écrit:

mais bon, on n'est pas maitre en apprenant...

Je la retiens celle-là !
:)

Tutoriels PowerShell

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

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