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 :

Copie de dossier, sous dossier et copie de fichier avec extension [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
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut Copie de dossier, sous dossier et copie de fichier avec extension
    Bonjour a tous,

    J'ai besoin de votre aide sur un problème surement simple.

    Objectif est de copier plusieurs dossier DYN* qui contient plusieurs sous dossier mais je souhaite copier que test et copier les fichier *xpi --> pour les coller vers un PC c:\destination\DYN*\test\*.xpi

    arborescence

    \\...\...\...\...\...\...\...\...\...\DYN1234\test\df1321.xpi
    \\...\...\...\...\...\...\...\...\...\DYN4567\test\df1581.xpi

    \\...\...\...\...\...\...\...\...\...\DYN7896\test\df7451.xpi

    jusqu’à maintenant j'arrive a copier tout les dossiers DYN* et tout les ces sous dossiers ainsi que tout les fichiers


    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $i=0
    $tableau = @()
     
    Foreach ($folder in get-ChildItem -path \\...\...\...\...\...\...\...\...\...\DYN*) {
           $tableau += $folder.FullName
           $i=$i+1
     
    } 
     
    Foreach ($folder in get-ChildItem -path $tableau) {
     
        copy-Item -path $tableau -Recurse -Destination C:\destination\test\ -force  # copie des dossier DYN* ainci que les sous dossier et fichier
     
    }

    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Ca devrait aller mieux comme ça :

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $i=0
     
    Foreach ($fichier in Get-ChildItem -Path \\...\...\...\...\...\...\...\...\...\DYN*\ -Recurse -Include *.xpi) {
           Copy-Item $fichier -Destination C:\destination\test\ -Force
           $i=$i+1
     }

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Oups je crois que j'ai zappé un truc concernant le dossier de destination, donc voilà une autre solution :

    Solution 2 :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Foreach ($folder in Get-ChildItem -Path \\...\...\...\...\...\...\...\...\...\DYN* -Directory) {
     
           Foreach ($fichier in Get-ChildItem -Path $folder.FullName -Recurse -Include *.xpi) {
     
                $dest = "C:\destination\" + $folder.Name + "\test\"
                New-item $dest -itemType directory 2>&1 | out-null
                Copy-Item $fichier -Destination $dest -Force
     
           }
    }

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    On peut aussi aller plus loin et récupérer le chemin relatif incluant les sous-dossiers (peu importe le nombre) :

    Solution 3 :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Foreach ($folder in Get-ChildItem -Path \\...\...\...\...\...\...\...\...\...\DYN* -Directory) {
     
           Foreach ($fichier in Get-ChildItem -Path $folder.FullName -Recurse -Include *.xpi) {
     
                $relatif=($fichier.PSParentPath | Split-Path -NoQualifier).Replace($folder.FullName,"")
                $dest="C:\destination\" + $folder.Name + $relatif
     
                New-item $dest -itemType directory 2>&1 | out-null
                Copy-Item $fichier -Destination $dest -Force
     
           }
     
    }

  5. #5
    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
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Get-ChildItem -Path "\\...\...\...\...\...\...\...\...\...\DYN*\test\*.xpi" | ForEach-Object {
        $dest = "C:\destination\$($_.Directory.Parent.Name)\$($_.Directory.Name)"
        New-Item -Path $dest -ItemType Directory -Force
        Copy-Item -Path $_.FullName  -Destination "$dest\$($_.Name)" -Force
    }

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut
    Bonjour,

    merci les gars pour vos solution.

    Je vais testé

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

Discussions similaires

  1. Copie de fichier avec Runtime
    Par seb591 dans le forum Langage
    Réponses: 8
    Dernier message: 24/07/2007, 16h07
  2. Copie de fichier avec un autre utilisateur
    Par cretindezalpes dans le forum Delphi
    Réponses: 7
    Dernier message: 02/04/2007, 17h01
  3. [cURL] Copie de fichier avec Curl
    Par eowene dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 17/11/2006, 15h03
  4. Copie de fichiers avec progressbar
    Par serialmatrix dans le forum C++
    Réponses: 3
    Dernier message: 11/02/2006, 18h30
  5. Réponses: 3
    Dernier message: 19/10/2005, 15h58

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