Déplacer des fichiers automatiquement
Yoda
-
heyquem Messages postés 759 Date d'inscription Statut Membre Dernière intervention -
heyquem Messages postés 759 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche à faire un petit script qui fait ceci :
1. lis les noms de fichiers contenus dans un dossier
2. déplace ceux contenant la chaine "EXPR" dans un autre dossier
à la base je programme en PHP donc je connais pas vraiment de langages de script pour windows, lequel me conseillez vous ? en gros, quel langage propose des fonctions parse() et move() plutôt simples ?
Merci beaucoup
je cherche à faire un petit script qui fait ceci :
1. lis les noms de fichiers contenus dans un dossier
2. déplace ceux contenant la chaine "EXPR" dans un autre dossier
à la base je programme en PHP donc je connais pas vraiment de langages de script pour windows, lequel me conseillez vous ? en gros, quel langage propose des fonctions parse() et move() plutôt simples ?
Merci beaucoup
A voir également:
- Déplacer des fichiers automatiquement
- Déplacer colonne excel - Guide
- Renommer des fichiers en masse - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Déplacer barre des taches windows 11 - Guide
- Fichiers epub - Guide
4 réponses
Bonjour,
C'est très facile à faire avec Python:
Dans ce code:
normpath() corrige certaines erreurs si on en fait dans l'écriture des chemins. Notamment, si on oublie qu'on est sous Windows et qu'on tape '/' comme séparateur, normpath() rectifie. De même si on tape trop de séparateurs, cette fonction en réduit le nombre à un seul.
Python détecte quel est le système d'exploitation et sep prend la valeur du séparateur utilisé dans ce système d'exploitation: sep vaut '/' si Linux, '\' si Windows. Ainsi, ce code est il utilisable aussi bien sur une plateforme Linux qu'une Windows.
Ce code est écrit en Python 2.7. En 3.x ce serait différent au niveau des imports car les modules dans os ont été réorganisés, mais rien de plus comme différence dans la suite.
remove() est une fonction qui supprime un fichier. C'est pour se conformer à ta demande: "déplacer" des fichiers, et non pas seulement les copier.
J'ai mis un '#' devant pour faire de la ligne un commentaire: tu as intérêt à tester le code ainsi avant de l'exécuter avec remove() qui supprimera effectivement les fichiers dans le dossier source.
Ce code peut être facilement complexifié pour prendre en compte des cas supplémentaires: par exemple, si un fichier de même nom existe déjà dans la destination, que faire ?
PS: il suffit de 10 mn pour installer Python. Si Python ne te convient pas, je n'en ferai pas une maladie.
J'aimerais savoir si la proposition de chiva est entièrement satisfaisante. Elle est remarquablement courte, même par rapport à Python qui n'est déjà pas très long. Mais elle réclame quand même de "se" positionner dans le fichier de départ, et c'est une limitation, non ?
C'est très facile à faire avec Python:
from os import listdir, sep from os.path import normpath, isfile, join source = normpath(raw_input('Entrer le chemin absolu du dossier a examiner : ')) dest = normpath(raw_input('Entrer le chemin absolu du dossier de destination : ')) for name in listdir(source): if isfile(source + sep + name) and "EXPR" in name: with open(source + sep + name,'rb') as fsce: with open(dest + sep + name, 'wb') as fdest: fdest.write(fsce.read()) # remove(source + sep + name)
Dans ce code:
normpath() corrige certaines erreurs si on en fait dans l'écriture des chemins. Notamment, si on oublie qu'on est sous Windows et qu'on tape '/' comme séparateur, normpath() rectifie. De même si on tape trop de séparateurs, cette fonction en réduit le nombre à un seul.
Python détecte quel est le système d'exploitation et sep prend la valeur du séparateur utilisé dans ce système d'exploitation: sep vaut '/' si Linux, '\' si Windows. Ainsi, ce code est il utilisable aussi bien sur une plateforme Linux qu'une Windows.
Ce code est écrit en Python 2.7. En 3.x ce serait différent au niveau des imports car les modules dans os ont été réorganisés, mais rien de plus comme différence dans la suite.
remove() est une fonction qui supprime un fichier. C'est pour se conformer à ta demande: "déplacer" des fichiers, et non pas seulement les copier.
J'ai mis un '#' devant pour faire de la ligne un commentaire: tu as intérêt à tester le code ainsi avant de l'exécuter avec remove() qui supprimera effectivement les fichiers dans le dossier source.
Ce code peut être facilement complexifié pour prendre en compte des cas supplémentaires: par exemple, si un fichier de même nom existe déjà dans la destination, que faire ?
PS: il suffit de 10 mn pour installer Python. Si Python ne te convient pas, je n'en ferai pas une maladie.
J'aimerais savoir si la proposition de chiva est entièrement satisfaisante. Elle est remarquablement courte, même par rapport à Python qui n'est déjà pas très long. Mais elle réclame quand même de "se" positionner dans le fichier de départ, et c'est une limitation, non ?
En fait en batch je peux très simplement afficher le contenu du dossier (avec attrib ou dir) et très facilement déplacer un fichier (avec move)
mais pour poser une condition sur le nom du fichier, c'est coton.
vous savez comment faire ?
mais pour poser une condition sur le nom du fichier, c'est coton.
vous savez comment faire ?