Ca y'est je me plonge dans le bouqin et je commence l'initiation au
powershell. Dans un répertoire j'ai environ 300 sous-répertoire qui ont
chacun un fichier xls. De temps en temps, il arrive que lors de la mise
à jour, une erreur se produise et alors le fichier xls n'est pas générée
et le répertoire est vide.
Je voudrai avoir une commande (1 ligne) qui me donne le ou les
répertoires vides.
J'arrive à avoir les listing de tous les répertoires, de tous les
fichiers xls, mais je sais pas commet faire pour récupérer l'info comme
quoi le répertoire est vide.
C'est pas la solution toute faite que je cherche mais plutot des pistes
pour y arriver.
Pour afficher tous les répertoires vides d'une racine donnée : dir d:test -recurse | ? {$_.PSIsContainer -and ! $_.GetFiles().Count} | % {$_.FullName}
Hou là, JE DEBUTE :-)))))))) Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?" Le "?" il indique une condition pour aller à l'étape suivante FullName ?
Merci beaucoup Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
Evidement ton truc fonctionne nickel !
Gilles LAURENT [MVP] a écrit :
Pour afficher tous les répertoires vides d'une racine donnée :
dir d:test -recurse |
? {$_.PSIsContainer -and ! $_.GetFiles().Count} |
% {$_.FullName}
Hou là, JE DEBUTE :-))))))))
Alors la première ligne j'avais (c'était pas la plus dure non plus :-))
La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais
pas le .Count() ni le and et encore moins le "?"
Le "?" il indique une condition pour aller à l'étape suivante FullName ?
Merci beaucoup
Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
Pour afficher tous les répertoires vides d'une racine donnée : dir d:test -recurse | ? {$_.PSIsContainer -and ! $_.GetFiles().Count} | % {$_.FullName}
Hou là, JE DEBUTE :-)))))))) Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?" Le "?" il indique une condition pour aller à l'étape suivante FullName ?
Merci beaucoup Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
Evidement ton truc fonctionne nickel !
Stephane (85)
Stephane (85) a écrit :
Gilles LAURENT [MVP] a écrit :
Pour afficher tous les répertoires vides d'une racine donnée : dir d:test -recurse | ? {$_.PSIsContainer -and ! $_.GetFiles().Count} | % {$_.FullName}
Hou là, JE DEBUTE :-)))))))) Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?"
Je réctifie j'avais le ? enfin j'avais where-object, mais je savais pas que c'était pareil :-)) idem pour le % je l'avais pas non plus.
Re-Merci
Stephane
Stephane (85) a écrit :
Gilles LAURENT [MVP] a écrit :
Pour afficher tous les répertoires vides d'une racine donnée :
dir d:test -recurse |
? {$_.PSIsContainer -and ! $_.GetFiles().Count} |
% {$_.FullName}
Hou là, JE DEBUTE :-))))))))
Alors la première ligne j'avais (c'était pas la plus dure non plus :-))
La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais
pas le .Count() ni le and et encore moins le "?"
Je réctifie j'avais le ? enfin j'avais where-object, mais je savais pas
que c'était pareil :-))
idem pour le % je l'avais pas non plus.
Pour afficher tous les répertoires vides d'une racine donnée : dir d:test -recurse | ? {$_.PSIsContainer -and ! $_.GetFiles().Count} | % {$_.FullName}
Hou là, JE DEBUTE :-)))))))) Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?"
Je réctifie j'avais le ? enfin j'avais where-object, mais je savais pas que c'était pareil :-)) idem pour le % je l'avais pas non plus.
J'avoue avoir volontairement utilisé les alias pour rendre la commande moins compréhensible :-) Je vous propose une version commentée et sans alias ci-dessous.
Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?" Le "?" il indique une condition pour aller à l'étape suivante FullName ?
# on récupére ici tous les fichiers et dossiers sous forme d'objets # powershell est orienté objet et c'est bien cela sa force Get-ChildItem d:test -recure |
# les objets transitent au travers du pipe # on souhaite uniquement les dossiers ET ceux qui sont vides # GetFiles().Count=0 donc ! GetFiles().Count = True Where-Object {$_.PSIsContainer -and ! $_.GetFiles().Count} |
# les objets transitent au travers du pipe # on possède maintenant notre collection d'objets de dossiers vides # parcours de la collection d'objets et affichage du chemin complet du dossier ForEach-Object {$_.FullName}
Merci beaucoup Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
J'avoue avoir volontairement utilisé les alias pour rendre la commande moins
compréhensible :-) Je vous propose une version commentée et sans alias
ci-dessous.
Alors la première ligne j'avais (c'était pas la plus dure non plus :-))
La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais
pas le .Count() ni le and et encore moins le "?"
Le "?" il indique une condition pour aller à l'étape suivante FullName ?
# on récupére ici tous les fichiers et dossiers sous forme d'objets
# powershell est orienté objet et c'est bien cela sa force
Get-ChildItem d:test -recure |
# les objets transitent au travers du pipe
# on souhaite uniquement les dossiers ET ceux qui sont vides
# GetFiles().Count=0 donc ! GetFiles().Count = True
Where-Object {$_.PSIsContainer -and ! $_.GetFiles().Count} |
# les objets transitent au travers du pipe
# on possède maintenant notre collection d'objets de dossiers vides
# parcours de la collection d'objets et affichage du chemin complet du dossier
ForEach-Object {$_.FullName}
Merci beaucoup
Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
Evidement ton truc fonctionne nickel !
Merci ;-)
Je vous invite à jeter un oeil au livre "Windows PowerShell : Guide de
référence pour l'administration système" disponible aux édition ENI :
<http://www.editions-eni.fr/Livres/Windows-PowerShell-Guide-de-reference-pour-l-administration-systeme/.4_3a6222cf-b921-41f5-886c-c989f77ba994_1116226f-5ebb-4ef3-8b45-bc3269563d48_1_0_d9bd8b5e-f324-473f-b1fc-b41b421c950f.html>
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
J'avoue avoir volontairement utilisé les alias pour rendre la commande moins compréhensible :-) Je vous propose une version commentée et sans alias ci-dessous.
Alors la première ligne j'avais (c'était pas la plus dure non plus :-)) La deuxième, partiellement: j'avais le PSIsCOntainer et GetFiles mais pas le .Count() ni le and et encore moins le "?" Le "?" il indique une condition pour aller à l'étape suivante FullName ?
# on récupére ici tous les fichiers et dossiers sous forme d'objets # powershell est orienté objet et c'est bien cela sa force Get-ChildItem d:test -recure |
# les objets transitent au travers du pipe # on souhaite uniquement les dossiers ET ceux qui sont vides # GetFiles().Count=0 donc ! GetFiles().Count = True Where-Object {$_.PSIsContainer -and ! $_.GetFiles().Count} |
# les objets transitent au travers du pipe # on possède maintenant notre collection d'objets de dossiers vides # parcours de la collection d'objets et affichage du chemin complet du dossier ForEach-Object {$_.FullName}
Merci beaucoup Stephane - Pas surpris de pas avoir pu pondre une ligne pareille :-)
Oui merci c'est déjà lui que j'ai sous les yeux :-)) Il est très bien fait, par contre dès fois faut s'accrocher pour suivre notamment dans le deboggage... Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Stephane
Gilles LAURENT [MVP] a écrit :
Merci ;-)
Je vous invite à jeter un oeil au livre "Windows PowerShell : Guide de
référence pour l'administration système" disponible aux édition ENI :
<http://www.editions-eni.fr/Livres/Windows-PowerShell-Guide-de-reference-pour-l-administration-systeme/.4_3a6222cf-b921-41f5-886c-c989f77ba994_1116226f-5ebb-4ef3-8b45-bc3269563d48_1_0_d9bd8b5e-f324-473f-b1fc-b41b421c950f.html>
Oui merci c'est déjà lui que j'ai sous les yeux :-))
Il est très bien fait, par contre dès fois faut s'accrocher pour suivre
notamment dans le deboggage...
Par contre je pense que je vais leur envoyer un mail d'insultes car la
qualité du collage des pages est à chier... elles se détachent les unes
après les autres.
Oui merci c'est déjà lui que j'ai sous les yeux :-)) Il est très bien fait, par contre dès fois faut s'accrocher pour suivre notamment dans le deboggage... Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Stephane
Arnaud Petitjean [MVP]
> Oui merci c'est déjà lui que j'ai sous les yeux :-)) Il est très bien fait, par contre dès fois faut s'accrocher pour suivre notamment dans le deboggage... Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Bonjour à tous,
...des fois faut s'accrocher pour suivre notamment dans le débogage...
En effet, cette partie n'est pas la plus facile. Et à expliquer encore moins ;-))
Quand on a des scripts assez complexes qui doivent être fiables pour la prod, c'est très très utile. C'est marrant mais ça m'a servi aujourd'hui ! J'avais développé un script PowerShell qui tourne en tant que service. Il scrute des répertoires et dès qu'il trouve un fichier d'un certain type il déclenche des actions. C'est une sorte de workflow simplifié. Or hier le service s'est planté pour une raison indéterminée. Heureusement j'avais pris le soin d'attraper les erreurs critiques et de les consigner dans un fichier. Ainsi en ouvrant le fichier de log aujourd'hui j'ai tout de suite trouvé la cause du problème et je l'ai corrigé sur le champs. Sans cela, je sais pas comment j'aurais fait pour déterminer la cause du plantage.
Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Effectivement c'est un problème de collage qui est apparu lors des tous premiers tirages. Quand as tu acheté le livre ? ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que le problème avait été résolu, et il l'est ! Je te propose de leur envoyer un email, et ils te feront je l'espère un geste commercial.
Bon courage pour ton apprentissage de PowerShell. Connais tu notre site communautaire entièrement dédié à PowerShell ? http://www.powershell-scripting.com" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.powershell-scripting.com
> Oui merci c'est déjà lui que j'ai sous les yeux :-))
Il est très bien fait, par contre dès fois faut s'accrocher pour suivre
notamment dans le deboggage...
Par contre je pense que je vais leur envoyer un mail d'insultes car la
qualité du collage des pages est à chier... elles se détachent les unes
après les autres.
Bonjour à tous,
...des fois faut s'accrocher pour suivre notamment dans le débogage...
En effet, cette partie n'est pas la plus facile. Et à expliquer encore moins
;-))
Quand on a des scripts assez complexes qui doivent être fiables pour la
prod, c'est très très utile.
C'est marrant mais ça m'a servi aujourd'hui ! J'avais développé un script
PowerShell qui tourne en tant que service.
Il scrute des répertoires et dès qu'il trouve un fichier d'un certain type
il déclenche des actions. C'est une sorte de workflow simplifié.
Or hier le service s'est planté pour une raison indéterminée.
Heureusement j'avais pris le soin d'attraper les erreurs critiques et de les
consigner dans un fichier. Ainsi en ouvrant le fichier de log aujourd'hui
j'ai tout de suite
trouvé la cause du problème et je l'ai corrigé sur le champs. Sans cela, je
sais pas comment j'aurais fait pour déterminer la cause du plantage.
Par contre je pense que je vais leur envoyer un mail d'insultes car la
qualité du collage des pages est à chier... elles se détachent les unes
après les autres.
Effectivement c'est un problème de collage qui est apparu lors des tous
premiers tirages.
Quand as tu acheté le livre ?
ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que le
problème avait été résolu, et il l'est !
Je te propose de leur envoyer un email, et ils te feront je l'espère un
geste commercial.
Bon courage pour ton apprentissage de PowerShell.
Connais tu notre site communautaire entièrement dédié à PowerShell ?
http://www.powershell-scripting.com
Arnaud PETITJEAN
MVP Admin Framework - Windows PowerShell
http://www.powershell-scripting.com
> Oui merci c'est déjà lui que j'ai sous les yeux :-)) Il est très bien fait, par contre dès fois faut s'accrocher pour suivre notamment dans le deboggage... Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Bonjour à tous,
...des fois faut s'accrocher pour suivre notamment dans le débogage...
En effet, cette partie n'est pas la plus facile. Et à expliquer encore moins ;-))
Quand on a des scripts assez complexes qui doivent être fiables pour la prod, c'est très très utile. C'est marrant mais ça m'a servi aujourd'hui ! J'avais développé un script PowerShell qui tourne en tant que service. Il scrute des répertoires et dès qu'il trouve un fichier d'un certain type il déclenche des actions. C'est une sorte de workflow simplifié. Or hier le service s'est planté pour une raison indéterminée. Heureusement j'avais pris le soin d'attraper les erreurs critiques et de les consigner dans un fichier. Ainsi en ouvrant le fichier de log aujourd'hui j'ai tout de suite trouvé la cause du problème et je l'ai corrigé sur le champs. Sans cela, je sais pas comment j'aurais fait pour déterminer la cause du plantage.
Par contre je pense que je vais leur envoyer un mail d'insultes car la qualité du collage des pages est à chier... elles se détachent les unes après les autres.
Effectivement c'est un problème de collage qui est apparu lors des tous premiers tirages. Quand as tu acheté le livre ? ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que le problème avait été résolu, et il l'est ! Je te propose de leur envoyer un email, et ils te feront je l'espère un geste commercial.
Bon courage pour ton apprentissage de PowerShell. Connais tu notre site communautaire entièrement dédié à PowerShell ? http://www.powershell-scripting.com" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.powershell-scripting.com
Un tube de colle gratuit ? (désolé, pas pu résister)
Mettre plus de colle, ça doit résister.
-- Salutations, Jean-François.
Stephane (85)
Arnaud Petitjean [MVP] a écrit :
Effectivement c'est un problème de collage qui est apparu lors des tous premiers tirages. Quand as tu acheté le livre ?
Dés le début, je l'avais en pré-commande avant la sorte du livre. Mais j'avais pas eu le temps de m'y plonger jusqu'à maintenant. Et je vais pas avoir beaucoup de temps pour continuer malheureusement...
ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que le problème avait été résolu, et il l'est ! Je te propose de leur envoyer un email, et ils te feront je l'espère un geste commercial.
Oui je peux toujours essayer mais je me fais pas trop d'illusion.
Bon courage pour ton apprentissage de PowerShell. Connais tu notre site communautaire entièrement dédié à PowerShell ? http://www.powershell-scripting.com
Oui mais je débute vraiment :-)) En tout cas ton bouquin m'a permis d'entrevoir ce qu'il est possible de faire avec PS et franchement c'est surprenant.
Stephane
Arnaud Petitjean [MVP] a écrit :
Effectivement c'est un problème de collage qui est apparu lors des tous
premiers tirages.
Quand as tu acheté le livre ?
Dés le début, je l'avais en pré-commande avant la sorte du livre. Mais
j'avais pas eu le temps de m'y plonger jusqu'à maintenant. Et je vais
pas avoir beaucoup de temps pour continuer malheureusement...
ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que
le problème avait été résolu, et il l'est !
Je te propose de leur envoyer un email, et ils te feront je l'espère un
geste commercial.
Oui je peux toujours essayer mais je me fais pas trop d'illusion.
Bon courage pour ton apprentissage de PowerShell.
Connais tu notre site communautaire entièrement dédié à PowerShell ?
http://www.powershell-scripting.com
Oui mais je débute vraiment :-))
En tout cas ton bouquin m'a permis d'entrevoir ce qu'il est possible de
faire avec PS et franchement c'est surprenant.
Effectivement c'est un problème de collage qui est apparu lors des tous premiers tirages. Quand as tu acheté le livre ?
Dés le début, je l'avais en pré-commande avant la sorte du livre. Mais j'avais pas eu le temps de m'y plonger jusqu'à maintenant. Et je vais pas avoir beaucoup de temps pour continuer malheureusement...
ENI m'a envoyé un livre la semaine dernière car je voulais vérifier que le problème avait été résolu, et il l'est ! Je te propose de leur envoyer un email, et ils te feront je l'espère un geste commercial.
Oui je peux toujours essayer mais je me fais pas trop d'illusion.
Bon courage pour ton apprentissage de PowerShell. Connais tu notre site communautaire entièrement dédié à PowerShell ? http://www.powershell-scripting.com
Oui mais je débute vraiment :-)) En tout cas ton bouquin m'a permis d'entrevoir ce qu'il est possible de faire avec PS et franchement c'est surprenant.