Question
Recherche d'extensions multiples
- Enouf
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 8 ans 4 mois #24439
par Enouf
Recherche d'extensions multiples a été créé par Enouf
Bonjour tout le monde,
J'ai créé récemment un script, qui doit me permettre de recueillir la liste des fichiers non autorisés sur le réseau.
En effet, nous avons des fichiers avec trois extensions différentes, qui doivent être stockées à un seul endroit du réseau, et surtout pas ailleurs.
Pour vérifier cela, je fais une recherche de ces extensions à travers tous les lecteurs réseau disponibles et en écartant le seul dossier autorisé à stocker ces données.
Or, mon script ne fonctionne que si je n'ai qu'un chemin de recherche.
Je ne comprends pas ce qui se passe.
Je vous mets le script en PJ, car là je suis bloqué et je ne trouve pas la solution sur les problèmes déjà posés.
Je vous remercie par avance de votre aide.
J'ai créé récemment un script, qui doit me permettre de recueillir la liste des fichiers non autorisés sur le réseau.
En effet, nous avons des fichiers avec trois extensions différentes, qui doivent être stockées à un seul endroit du réseau, et surtout pas ailleurs.
Pour vérifier cela, je fais une recherche de ces extensions à travers tous les lecteurs réseau disponibles et en écartant le seul dossier autorisé à stocker ces données.
Or, mon script ne fonctionne que si je n'ai qu'un chemin de recherche.
Je ne comprends pas ce qui se passe.
Je vous mets le script en PJ, car là je suis bloqué et je ne trouve pas la solution sur les problèmes déjà posés.
Je vous remercie par avance de votre aide.
La pièce jointe script_pour_forum.txt est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 4 mois #24442
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche d'extensions multiples
Salut,
la construction de l'appel à la commande GCI est à revoir :
[code:1]
$path=\"C:\\" , \"G:\\"
Trace-Command ParameterBinding { Get-ChildItem -Path $path\* } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [C:\ G:\\*] to parameter [Path]
#DEBUG: ParameterBinding Information: 0 : COERCE arg to [System.String[]]
[/code:1]
Ici ton tableau est convertie en une string :
[code:1]
\"$path\"
#C:\ G:\
\"$path\*\"
#C:\ G:\*
[/code:1]
Ici on traite un tableau, donc une itération :
[code:1]
Trace-Command ParameterBinding { Get-ChildItem -Path 'c:\*','g:\*' } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [System.Object[]] to parameter [Path]
[/code:1]
Possible solution :
[code:1]
$path=\"C:\*\" , \"G:\*\"
Trace-Command ParameterBinding { Get-ChildItem -Path $path } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [System.Object[]] to parameter [Path]
#DEBUG: ParameterBinding Information: 0 : COERCE arg to [System.String[]]
[/code:1]
Ou encore construire les chemins selon les noms d'unité au sein d'une boucle :
[code:1]
$Unites='CG'
foreach ($Lecteur in ([char[]]$Unites)) { gci -path \"${Lecteur}:\*\" }
#dir lecteur : C
#dir lecteu [/code:1]
la construction de l'appel à la commande GCI est à revoir :
[code:1]
$path=\"C:\\" , \"G:\\"
Trace-Command ParameterBinding { Get-ChildItem -Path $path\* } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [C:\ G:\\*] to parameter [Path]
#DEBUG: ParameterBinding Information: 0 : COERCE arg to [System.String[]]
[/code:1]
Ici ton tableau est convertie en une string :
[code:1]
\"$path\"
#C:\ G:\
\"$path\*\"
#C:\ G:\*
[/code:1]
Ici on traite un tableau, donc une itération :
[code:1]
Trace-Command ParameterBinding { Get-ChildItem -Path 'c:\*','g:\*' } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [System.Object[]] to parameter [Path]
[/code:1]
Possible solution :
[code:1]
$path=\"C:\*\" , \"G:\*\"
Trace-Command ParameterBinding { Get-ChildItem -Path $path } -pshost
#DEBUG: ParameterBinding Information: 0 : BIND NAMED cmd line args [Get-ChildItem]
#DEBUG: ParameterBinding Information: 0 : BIND arg [System.Object[]] to parameter [Path]
#DEBUG: ParameterBinding Information: 0 : COERCE arg to [System.String[]]
[/code:1]
Ou encore construire les chemins selon les noms d'unité au sein d'une boucle :
[code:1]
$Unites='CG'
foreach ($Lecteur in ([char[]]$Unites)) { gci -path \"${Lecteur}:\*\" }
#dir lecteur : C
#dir lecteu [/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Enouf
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 8 ans 4 mois #24444
par Enouf
Réponse de Enouf sur le sujet Re:Recherche d'extensions multiples
Merci, ça fonctionne c'est super
J'aurais jamais pensé à le faire comme ça. En tout cas merci du coup de main.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 8 ans 4 mois #24446
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche d'extensions multiples
Une écriture plus lisible pour le foreach du dernier exemple :
[code:1]
[string]$Unites='CG'
foreach ( $Lecteur in $Unites.GetEnumerator() ) { gci -path \"${Lecteur}:\*\" }
[/code:1]
Le type string est aussi un tableau de caractères.
[code:1]
[string]$Unites='CG'
foreach ( $Lecteur in $Unites.GetEnumerator() ) { gci -path \"${Lecteur}:\*\" }
[/code:1]
Le type string est aussi un tableau de caractères.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Recherche d'extensions multiples