Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[résolu] Macro rechercher, copier, coller


Messages recommandés

Posté(e)

Bonjour,

 

Je cherche la réponse à la question suivante.

 

J'ai un disque dur externe sur lequel régulièrement, mon épouse, mes enfants ou moi-même rajoutons des photos personnelles.

Chacun les met un peu n'importe où.

 

Je cherche un moyen de créer une macro que je placerai sur le bureau de mon ordinateur et que je lancerai le moment opportun.

Cette macro rechercherait automatiquement les photos sur le disque dur externe, les couperait/copierait, et les collerait vers un répertoire temporaire de mon DD interne afin d'être gravées.

 

Bien sûr une recherche avec *.jpg, puis couper/coller me dépanne, mais comme je suis fainéant....

 

Quelqu'un pourrait me dire comment m'y prendre, car je n'y connait vraiment rien en programmation.

 

J'ai entendu parler des fichiers bat mais n'ai aucune idée de ce que c'est et de la manière de les créer puis de m'en servir, ni même si c'est approprié à ma demande.

 

(Mon DD externe est tjs reconnu sous la lettre K:, et mon répertoire de photos temporaire sur mon DD interne est C:\Documents and Settings\Compaq_Propriétaire\Mes documents\Mes images\temp)

 

par avance merci.

  • Modérateurs
Posté(e)

Bonsoir Gilles, :P

 

Mon batch est un peu rouillé, et il y a sans doute plus élégant. Mais il semble fonctionner correctement (après quelques essais chez moi).

 

@echo off

Rem Batch de Déplacement de photos au format jpg - Gof

Rem

Rem Veuillez saisir ici le répertoire de destination

set destinationphoto=C:\Documents and Settings\Compaq_Propriétaire\Mes documents\Mes images\temp

Rem

Rem Veuillez saisir ici le lecteur sur lequel porte la recherche

set lecteur=e

Rem Recherche des fichiers

dir %lecteur%:\*.jpg /b /s /x > %tmp%\listing.txt

echo Recherche des fichiers, veuillez patienter...

if exist %tmp%\listing.txt goto deplacement

echo Aucune photo trouvee.

goto sortie

:deplacement

Rem Déplacement des fichiers

echo.

for /f "delims=," %%i in (%tmp%\listing.txt) do (

echo Deplacement de "%%i" ...

move /-y "%%i" "%destinationphoto%\"

)

goto sortie

:sortie

Rem fin du batch

echo.

echo Fin de batch

pause

Rem Suppression des variables et du fichier listing

set destinationphoto=""

set lecteur=""

del /q %tmp%\listing.txt

exit

 

Ouvre le Bloc-notes Windows et copie-colle l'intégralité du batch dans la fenêtre du Bloc-notes.

  • Assure toi que le retour automatique à la ligne n'est pas activé
  • Sauvegarde comme Batch de deplacement de photos.bat sur le Bureau :
  • Nom: Batch de deplacement de photos.bat
  • Type: Tous les fichiers

Le fichier doit avoir cette icône pour être fonctionnel : imagebat.jpg

Il te suffira de l'exécuter pour que la recherche de photos s'effectue et que les résultats soient déplacés dans le répertoire que tu as indiqué.

 

Tu peux le télécharger directement si tu n'y arrives pas : http://gof.images.free.fr/Batch_Deplacement_photos.bat

 

Note : Les éléments en vert sont des éléments personnalisables ; il s'agit du répertoire de destination dans lequel les photos seront déplacées, de la lettre du lecteur à traiter pour la recherche, et du format des fichiers à rechercher (ici jpg). Le Batch proposé (ainsi qu'en téléchargement) est adapté à Gilles personnellement.

Posté(e)

Bonjour Gof,

 

j'ai récupéré ton fichier Bat.

 

Il marche à merveille.

 

Je te remercie énormément, il me falicite bien la vie.

  • Modérateurs
Posté(e)

De rien, :P

 

Je t'invite à parcourir les différentes commandes afin de comprendre comment cela fonctionne. Pour cela, ouvre une fenêtre d'invite de commandes en te rendant dans ton Menu Démarrer > Exécuter, et en tapant cmd puis en validant.

 

L'aide pour chacune des commandes est disponible en saisissant : [commande] /?

 

Exemple : dir /?.

 

Je bascule ton sujet en résolu ; bon surf.

Posté(e)

Bonjour,

 

J'ai essayé de suivre ton conseil et j'ai parcouru un peu les forum sà la recherche de compléments d'informations.

N'ayant pas de formation particulière à l'informatique, et encore moins à la programmation, je cale !

 

Donc, comme j'utilise mon petit fichier bat bien pratique, je me demandais s'il était possible de lui rajouter :

 

1- La fonction recherche sur plusieurs disques (c et d successivement par exemple)

2- la recherche dans les répertoire cachés

3- enlever la confirmation lorsque le "fichier bat" trouve un doublon et qu'il demande s'il doit être remplacé. C'est à dire que si un doublon est trouvé, qu'il soit remplacé automatiquement.

 

Voila mes nouvelles questions.

 

Merci de ton/votre aide.

  • Modérateurs
Posté(e)

Bonjour salykato (s'agit-il toujours du Gilles l'invité initial ?) :P

 

Oui, en effet c'est possible. Je manque de temps pour développer d'avantage, mais quelques pistes.

  • 1. Oui, en définissant par exemple une nouvelle variable pour le deuxième lecteur et en insérant une deuxième commande de recherche, à la suite de la première, portant sur cette nouvelle variable (et donc nouveau lecteur).
    2. Oui, en jouant avec les options de la commande DIR.
    3. Oui, en jouant avec les options de MOVE.

Je n'ai pas le temps de développer d'avantage là, retour dans quelques jours. D'ici là, les pistes suggérées te feront peut-être avancer :P

  • 4 semaines après...
Posté(e)

Oui il s'agit bien du même.

 

Après recherche, je n'arrive à rien. J'ai vraiment du mal.

De l'aide ?

 

Par avance merci.

  • Modérateurs
Posté(e)

Bonsoir et bonnes fêtes :P

 

Donc, comme j'utilise mon petit fichier bat bien pratique, je me demandais s'il était possible de lui rajouter :

 

1- La fonction recherche sur plusieurs disques (c et d successivement par exemple)

2- la recherche dans les répertoire cachés

3- enlever la confirmation lorsque le "fichier bat" trouve un doublon et qu'il demande s'il doit être remplacé. C'est à dire que si un doublon est trouvé, qu'il soit remplacé automatiquement.

 

Alors, allons-y ensemble. [Note : je ne suis pas un spécialiste du Batch, il y a sûrement plus élégant, mieux construit, etc. Ce ne sont que des suggestions aux questions ici posées]. Je t'aide pour la première partie, et je t'aiguille pour la deuxième. On verra ensuite la troisième. :P

 

1. La fonction recherche sur plusieurs disques (c et d successivement par exemple)

  • Rem
    Rem Veuillez saisir ici le lecteur sur lequel porte la recherche
    set lecteur=e
    Rem Recherche des fichiers
    dir %lecteur%:\*.jpg /b /s /x > %tmp%\listing.txt
    echo Recherche des fichiers, veuillez patienter...
    if exist %tmp%\listing.txt goto deplacement
    echo Aucune photo trouvee.
    goto sortie

 

On va donc modifier cela, et y insérer ce deuxième lecteur. Prenons notre ligne où nous déclarons la lettre du lecteur.

  • set lecteur=e

Et on y rajoute une deuxième variable, nommé lecteur2 par exemple :

  • set lecteur=c
    set lecteur2=d

Et on insère ainsi en conséquence cette deuxième variable dans la recherche dir :

  • dir %lecteur%:\*.jpg /b /s /x > %tmp%\listing.txt
    dir %lecteur2%:\*.jpg /b /s /x >> %tmp%\listing.txt

 

As-tu remarqué le double >> ? Dans la première ligne, on écrit le résultat de la commande dans le fichier texte listing.txt via le signe >. On en met qu'un car ainsi, si le fichier existe déjà et contient déjà des informations, elles seront écrasées par le résultat de notre première ligne. A la deuxième ligne, nous lui demandons aussi d'écrire les résultats dans ce même fichier, mais sans écraser les éventuelles données déjà présentes, d'où le double signe >>.

 

2. La recherche dans les répertoire cachés

 

Là, on va comme je te l'avais suggéré, on va regarder les options DIR en saisissant la commande dir /?. Tu obtiendras l'aide suivante :

  • Affiche une liste de fichiers et de sous-répertoires dans un répertoire.
     
    DIR [lecteur:][chemin][nom_de_fichier] [/A[[:]attributs]] [/b] [/C] [/D] [/L]
    [/N] [/O[[:]tri]] [/P] [/Q] [/s] [/T[[:]heure]] [/W] [/X] [/4]
     
    [lecteur:][chemin][nom_de_fichier]
    Spécifie le lecteur, le répertoire et/ou fichiers à lister.
     
    /A Affiche les fichiers dotés des attributs spécifiés.
    attributs D Répertoires R Lecture seule
    H Caché A Archive
    S Système - Préfixe de négation
    /B Utilise le format abrégé (noms des fichiers).
    /C Affiche le séparateur de milliers pour les tailles de fichiers.
    Ceci est la valeur par défaut. Utilisez /-C pour désactiver l'affichage
    du séparateur.
    /D Sur cinq colonnes avec fichiers triés par colonne.
    /L Affiche en minuscules.
    /N Nouveau format longue liste où les noms de fichiers sont à droite.
    /O Affiche les fichiers selon un tri spécifié.
    tri N Nom (alphabétique) S Taille (ordre croissant)
    E Extension (alphabétique) D Date et heure (chronologique)
    G Répertoires en tête - Préfixe en ordre indirect
    /P Arrêt après l'affichage d'un écran d'informations.
    /Q Affiche le nom du propriétaire du fichier.
    /S Affiche les fichiers d'un répertoire et de ses sous-répertoires.
    /T Contrôle le champ heure affiché ou utilisé dans le tri.
    heure C Création
    A Dernier accès
    W Dernière écriture
    /W Affichage sur cinq colonnes.
    /X Affiche les noms courts générés pour les noms de fichier non 8.3 car.
    Ce format est celui de /N avec le nom court inséré avant le nom long.
    S'il n'y a pas de nom court, des espaces seront affichés à la place.
    /4 Affiche l'année sur quatre chiffres.

On sait que notre ligne initiale ressemble à ça :

 

dir %lecteur%:\*.jpg /b /s /x > %tmp%\listing.txt

 

Que va-t-on modifier ou insérer à ton avis pour inclure la recherche dans les répertoires et fichiers cachés ?

Invité Invité
Posté(e)

Déjà, bonne année à toi Gof, et meilleurs voeux à tous.

 

Que faut il rajouter ?

Je dirais le /A qui affiche les fichiers dotés des attributs spécifiés.

avec l'attribut H

C'est ça ?

 

Quand je vois la ligne écrite avec tes explications c'est bien plus clair.

Mais de la à écrire une ligne moi même c'est une autre perd de manche.

Ma réponse est elle correcte ?

  • Modérateurs
Posté(e)

Bonjour, et belle année également :P

 

Je dirais le /A qui affiche les fichiers dotés des attributs spécifiés.

avec l'attribut H

C'est ça ?

Oui, c'est ça. :P Regarde la syntaxe associée à la commande /A à présent : DIR [lecteur:][chemin][nom_de_fichier] [/A[[:]attributs]]

 

On va prendre en exemple en lecteur, le lecteur C, à la racine du disque (pas de répertoires précis), et en nom de fichier, on prend tous les fichiers à l'extension JPG (*.jpg). Sans se soucier de notre ligne complète, mais juste avec celle-ci : dir c:\*.jpg [?]

 

Que va-t-on mettre à la place du [?], quelle sera la syntaxe correcte de l'option A ?

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...