IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

copier des fichier dans les repertoires [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    PARIS
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PARIS

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut copier des fichier dans les repertoires
    Bonjour,

    Je débute en Powershell, donc un peu d'indulgence je demande;

    En fait je souhaite copier tous les fichier .txt qui se trouvent dans une arborescence.

    j'ai un dossier Travail qui contient d'autres dossiers, qui peuvent contenir d'autres dossiers aussi.
    Les fichiers en question peuvent se trouver à différents niveau dans l'arborescence.


    Nom : image_2021-02-19_022935.png
Affichages : 129
Taille : 151,7 Ko

    Ce qui m'embête c'est qu'avec la 1ère commande, je récupère tous les dossiers et les sous-dossiers bien que certains soient vides en réponse au filtre , alors que je souhaite que les fichiers seulement.

    La deuxième commande ne me donne qu'un seul fichier qui se situait au plus haut niveau de l'arborescence, c'est à dire dans le dossier travail.

    Pourtant quand je liste les fichiers .txt présents à l'aide de la troisième, j'en ai beaucoup plus.

    Quelqu'un pourrait me donner une solution simple, pas trop poussé car je ne suis qu'au debut des chapitres;

    Et tant que j'y suis, c'est quoi la différence entre la 1ère et la 2ème commande ?


    et la différence si je mets un \ ou non apres le dossier Travail dans cette commande

    Nom : image_2021-02-19_024401.png
Affichages : 122
Taille : 49,8 Ko

    Merci d'avance pour les retours .

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tout d’abord je n'aime pas trop cette commande, je ne la trouve pas à la hauteur de ce que l'on en attend

    La nuance entre Filter et Include est difficile à appréhender.
    Disons que Filter est utilisé lors de la constitution de la liste des fichier à copier, elle peut être plus puissante et complexe que include en fonction du fournisseur (provider).
    Include vérifie, dans la liste des fichiers constituée, si dans le chemin complet il contient un certain texte.

    -Filter <string>
    Spécifie un filtre dans le format ou le langage du fournisseur. La valeur de ce paramètre qualifie le paramètre Path. La syntaxe du filtre, notamment l'utilisation de caractères génériques, dépend du fournisseur. Les filtres sont plus efficaces que les autres paramètres, car le fournisseur les applique lors de la récupération des objets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupérés.

    -Include <string[]>
    Spécifie uniquement les éléments affectés par l'applet de commande, en excluant tous les autres.

    Recurse ne semble affecter que la copie et pas la constitution de la cible. Elle n'affecte donc pas la recherche des fichiers à copier mais la capacité à copier une arborescence contenant des sous-dossiers
    -Recurse [<SwitchParameter>]
    Spécifie une copie récursive.
    Copy-Item peut filtrer les éléments avec ses paramètres Path , Filter , Include et Exclude



    Pour faire ce que tu veux la Copy-Item ne suffit donc pas, voici une solution proposée fréquemment (https://serverfault.com/questions/70...ultiple-filter)
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Get-ChildItem -Path ".\DESKTOP\TRAVAIL" -Include "*.txt" -Recurse | ForEach-Object { 
        Copy-Item -Path $_.FullName -Destination "D:\LP\services_windows\recup"
    }
    ou
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-ChildItem -Path ".\DESKTOP\TRAVAIL" -Include "*.txt" -Recurse | Copy-Item -Destination "D:\LP\services_windows\recup"

    Tu trouveras sur le forum mentionné un exemple qui te permet de garder la structure si besoin


    PS : ".\DESKTOP\TRAVAIL" est identique à ".\DESKTOP\TRAVAIL\". le \ est mis en vu de filtre supplémentaire par exemple \*.txt
    Ou \* si nous voulons tous les fichiers plutôt que le dossier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    PARIS
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PARIS

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut
    Merci ericlm128 pour ta réponse;

    En effet la précision sur les subtilités des paramètres filter, include m'ont beaucoup aidé et les deux solutions répondent très bien à mon problème.
    Grace à ton petit cours j'ai avancé sur d'autres points de mon script par une bonne utilisation de ces paramètres

    Je clos le sujet en resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/11/2006, 21h06
  2. Réponses: 3
    Dernier message: 21/07/2006, 13h22
  3. Réponses: 1
    Dernier message: 16/02/2006, 08h50
  4. Réponses: 6
    Dernier message: 26/12/2005, 00h48
  5. Lister des fichiers dans un repertoire
    Par K.othmane dans le forum Langage
    Réponses: 1
    Dernier message: 23/12/2005, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo