> Tous les forums > Forum Windows 7
 Aide à l'ecriture d'un fichier batch ou script de deplacement de fichier.
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
makulafo
  Posté le 12/05/2013 @ 23:39 
Aller en bas de la page 
Petit astucien

Bonsoir,

Je souhaite creer un batch ou un script qui effectue deux actions:

- Rechercher dans le dossier Y des fichiers dont le nom contient une chaine de caractere (on doit pouvoir chercher plusiers chaines de caractere en meme temps: *debra*;*ferma*; *wind)

Grace à un précédent post, je peux faire cette operation grace à powerdesk

- Dans la liste de fichier trouvés possedant la même chaine de caractere, déplacer le fichier le plus recent dans un dossier x


Merci de me donner un coup de main

Publicité
G2mains
 Posté le 13/05/2013 à 09:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Un script pour déplacer le fichier le plus récent dans un dossier à partir d'un résultat de recherche.

Sélectionner et déplacer le fichier le plus récent parmi des fichiers physiquement présents dans un dossier :

FOR /F "delims=|" %%I IN ('DIR "D:\Y\*.*" /B /O:D') DO SET NewestFile=%%I
copy "D:\Y\%NewestFile%" "D:\X"

Bien entendu, les chemins en rouge sont à titre d'exemples.



Modifié par G2mains le 13/05/2013 09:16
makulafo
 Posté le 13/05/2013 à 11:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour le script.

FOR /F "delims=|" %%I IN ('DIR "D:\Y\*.*" /B /O:D') DO SET NewestFile=%%I
copy "D:\Y\%NewestFile%" "D:\X"

J'ai compris la partie du script en rouge: les dossiers d'origine et de destination. Mais dans la selection des fichiers j'ai du mal

- il s'agit de fichiers de même type, l'extension n'est pas importante

- Le Critere de selection se fait sur des chaines de caracteres presentes dans le nom de fichier (*AB*2012*; *CD*2013*;*FG*2013*)

l'exemple entre parenthèse est une recherche telle que je la fais dans powerdesk pour recherche les fichiers ayant dans leurs noms: la chaine de caractere AB et se terminant par 2013, ou la chaine CD et se terminant par 2012, ou la chaine FG et se terminant par 2013.

Comment specifier ceci dans le script que tu proposes ?

G2mains
 Posté le 13/05/2013 à 16:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Tu peux faire un script pour chaque chaîne de caractère :

FOR /F "delims=|" %%I IN ('DIR "D:\Y\*AB*2012*.*" /B /O:D') DO SET NewestFile=%%I
copy "D:\Y\%NewestFile%" "D:\X"

FOR /F "delims=|" %%I IN ('DIR "D:\Y\*CD*2013*.*" /B /O:D') DO SET NewestFile=%%I
copy "D:\Y\%NewestFile%" "D:\X"

ou D:\Y\*AB*2012.*



Modifié par G2mains le 13/05/2013 17:58
makulafo
 Posté le 14/05/2013 à 19:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'ai fait un test, il semple que le critere deux de mon script n'est pas pris en compte: "Dans la liste de fichier trouvés possedant la même chaine de caractere, déplacer le fichier le plus recent dans un dossier x"

est ce moi qui ne le reprend pas correctement ?

merci de me dire

G2mains
 Posté le 14/05/2013 à 20:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
makulafo a écrit :

j'ai fait un test, il semple que le critere deux de mon script n'est pas pris en compte: "Dans la liste de fichier trouvés possedant la même chaine de caractere, déplacer le fichier le plus recent dans un dossier x"

est ce moi qui ne le reprend pas correctement ?

merci de me dire

Sans voir ton script, c'est assez difficile à dire.



Modifié par G2mains le 14/05/2013 20:50
pc-facile13
 Posté le 17/05/2013 à 22:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Je n'avais pas eu trop de temps jusque là, mais voici un script qui devrait faire ce que tu demandes (si j'ai bien compris {#}).

Mon sript


En gros tu lances le script:

- Tu choisis le répertoire dans lequel rechercher les fichiers
- La syntaxe des fichiers à rechercher (l'* est autorisé + il faut séparer les noms de fichiers par des ";" ou par un saut de ligne)
- Si tu souhaites déplacer ou copier le fichier le plus récent correspondant au critère de nom (attention pour la copie, si plusieurs critères correspondent au même fichier la même copie sera réalisée plusieurs fois il n'y aura donc pas forcément 50 fichiers (selon ton cas) dans le répertoire de destination).

Les fichiers du répertoire de destination seront écrasés (si déjà existant).
Pour le moment le seul moyen d'annuler un traitement est de faire un clic droit sur l'icone du script qui se trouvera à coté de l'horloge Windows -> "Arrêter le script" (je ne me suis pas amusé à tester sur 15000 fichers / 50 recherches {#}). Ceci dit il est (normalement) possible de continuer à travailler tout en laissant tourner le script en fond (si le processeur et/ou mémoire sature(nt) sur les gros traitements, dit le moi et j'ajouterais des petites pauses afn de "calmer le jeu").

Les chemins / noms de fichiers sont mémorisés dans un fichier ini qui se trouvera dans le même répertoire que le script (et qui sera mis à jour lors de la validation).

Bon test.

PS: les dates de modifications des fichiers doivent être sous la forme "JJ/MM/AAAA HH:MN" (= Paramètres régionaux Français)

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
AIde pour realiser Un batch de deplacement conditionnel de fichier
Batch de recherche et copie de multiple fichier.
Reinstaller windows7 a l'aide d'un fichier vhd
Insertion ouy déplacement d'images dans fichier photos
fichier batch avec espaces (pas trouver la solutions sur les autres sujets)
Aide pour fichier .bat
pb dans les deplacement de fichier d'un dossier a un autre
Demande d'aide pour un script batch DOS
Fichier d'aide (.hlp) antérieurs à 7
Déplacement de fichier win 7
Plus de sujets relatifs à Aide à l''ecriture d''un fichier batch ou script de deplacement de fichier.
 > Tous les forums > Forum Windows 7