none
Recherche par nom RRS feed

  • Question

  • Bonjour à tous !

    Me voilà bloqué depuis 2 jours sur une petite fonction que j'aimerai faire et donc j'ai besoin de votre aide !

    Je souhaite rechercher et extraire des fichiers portant la suite de caractères, dans mon cas "CAD" et tous ces fichiers commençant par ça, je dois les exporter, mais ça j'y arrive. C'est la fonction en elle même ou je suis peut-être passé à côté de la bonne solution.

    Après beaucoup de recherches, j'ai trouvé la fonction "-split", mais je n'arrive pas à bien l'utiliser pour qu'elle me sépare et analyse les lettres et me prenne en compte que les 3 premières..

    Quelqu'un a-t-il une idée ? 

    Merci beaucoup !

    mercredi 11 septembre 2019 08:00

Toutes les réponses

  • Bonjour,

    J'ai peut-être mal compris la question, car voici la commande en question :

    Get-Item -Path "CAD*"


    Cordialement,

    Sylvain (MCP, MCTS Windows Server 2008 R2 Server Virtualization, MCTS Exchange 2010)

    http://snsv.consulting

    Blog : http://sylvaincoudeville.fr

    mercredi 11 septembre 2019 08:06
  • Bonjour Sylvain,

    Merci de ta réponse rapide !

    Mais effectivement ma question n'est pas très clair..

    Pour résumer, j'ai dans un dossier, de très nombreux fichiers commençant tous par des nom différent, sauf certains (ceux qui m’intéressent ) commence par "CAD..." et c'est ceux là que mon script doit arriver à extraite et seulement eux.

    Peut-être que j'utilise mal la fonction get-item..

    Merci pour votre aide :)

    mercredi 11 septembre 2019 08:47
  • J'avais donc bien compris. Ces lignes feront l'affaire :

    $files = Get-Item -Path "C:\dossier\CAD*"

    Foreach ($file in $files) {

    Write-Host $file.Name

    }



    Cordialement,

    Sylvain (MCP, MCTS Windows Server 2008 R2 Server Virtualization, MCTS Exchange 2010)

    http://snsv.consulting

    Blog : http://sylvaincoudeville.fr

    mercredi 11 septembre 2019 08:59
  • Merci beaucoup !

    Je partais beaucoup trop techniquement, sans même me dire que la différenciation pouvait se faire dans le paramètre path de la fonction get-item...

    Un très grand merci encore une fois et une très bonne journée à vous Sylvain :)

    mercredi 11 septembre 2019 09:08
  • @Sylvain :  ta réponse fonctionne parfaitement  ... dans certains cas seulement. Elle risque cependant d'embouiller Nickola2. En fait, tu aurais du proposer Get-ChildItem

    Dans le cas présent cela peut ne présenter aucune différence (si le besoin s'arrête au 1er niveau). En revanche, si le besoin concernait x niveaux de profondeur, il y aurait une différence.

    Il y a en effet un chevauchement dans le comportement de ces 2 cmdlets.

    (Get-Item c:\temp\*.txt ).count
    30
    (Get-ChildItem c:\temp\*.txt).count
    30 # même résultat
    (Get-ChildItem c:\temp\*.txt -Recurse).count
    32 # pas pareil
    (Get-ChildItem c:\temp\*.txt -Depth 1).count
    32 # pas pareil

    Comme on peut le voir si on applique le paramètre -recurse ou -depth ça change tout.  Get-Item n'a pas ces paramètres.

    Si avec Get-Item le path est du type Directory (ex.  c:\dir\), ça retourne un objet avec les propriétés dudit répertoire.

    Si le path est du type file (ex; c:\dir\* ou c:\dir\CAD.*) ça retourne une collection d'objets corrspondant au contenu du répertoire parent mais juste le 1er niveau.

    Olivier

    mercredi 11 septembre 2019 13:10
  • @Sylvain :  ta réponse fonctionne parfaitement  ... dans certains cas seulement. Elle risque cependant d'embouiller Nickola2. En fait, tu aurais du proposer Get-ChildItem

    Dans le cas présent cela peut ne présenter aucune différence (si le besoin s'arrête au 1er niveau). En revanche, si le besoin concernait x niveaux de profondeur, il y aurait une différence.

    Il y a en effet un chevauchement dans le comportement de ces 2 cmdlets.

    (Get-Item c:\temp\*.txt ).count
    30
    (Get-ChildItem c:\temp\*.txt).count
    30 # même résultat
    (Get-ChildItem c:\temp\*.txt -Recurse).count
    32 # pas pareil
    (Get-ChildItem c:\temp\*.txt -Depth 1).count
    32 # pas pareil

    Comme on peut le voir si on applique le paramètre -recurse ou -depth ça change tout.  Get-Item n'a pas ces paramètres.

    Si avec Get-Item le path est du type Directory (ex.  c:\dir\), ça retourne un objet avec les propriétés dudit répertoire.

    Si le path est du type file (ex; c:\dir\* ou c:\dir\CAD.*) ça retourne une collection d'objets corrspondant au contenu du répertoire parent mais juste le 1er niveau.

    Olivier

    Tout à fait, s'il faut les sous-dossiers, Get-ChildItem sera plus approprié

    Cordialement,

    Sylvain (MCP, MCTS Windows Server 2008 R2 Server Virtualization, MCTS Exchange 2010)

    http://snsv.consulting

    Blog : http://sylvaincoudeville.fr

    mercredi 11 septembre 2019 13:11