Récupérer taille dossier Powershell dans variable Batch

brucine Messages postés 24928 Date d'inscription   Statut Membre Dernière intervention   -  
brucine Messages postés 24928 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Formellement, je n'en ai pas besoin, le demandeur a changé ses plans, mais essayons quand même de mourir moins bête.

J'ai un dossier dont je veux retourner la taille après exclusion d'un sous-dossier, en Powershell, aucun problème:
 

$orig = "G:\photos\antibes"
(Get-ChildItem $orig -Recurse | Where {$_.FullName -notlike "*\datareporting\*"}| Measure-Object -Property Length -Sum).Sum
pause

Le résultat est bien 39871376, la taille du dossier $orig moins celle du sous-dossier datareporting.

Mais là où dans un batch une syntaxe d'exclusion de fichier marche parfaitement sur le style:
 

FOR /F %%b IN ('powershell.exe -Command "(Get-ChildItem %orig% -Recurse -Exclude:*.jsonlz4| Measure-Object -Property Length -Sum).Sum"') DO SET to=%%a

je ne trouve aucun moyen d'y faire lire la première syntaxe pour un dossier.

Merci.

 

1 réponse

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     

    Bonjour brucine,

    Dans ta boucle FOR, au niveau de l'opérateur -notlike il faut échapper les doubles quotes comme ceci :

    (Get-ChildItem $orig -Recurse | Where {$_.FullName -notlike """*\datareporting\*"""}| Measure-Object -Property Length -Sum).Sum

    0
    1. brucine Messages postés 24928 Date d'inscription   Statut Membre Dernière intervention   4 179
       

      Bonjour,

      Il fallait la chercher, celle-là, j'y serais encore, je suis une vraie quiche en PowerShell.

      Merci beaucoup.

      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > brucine Messages postés 24928 Date d'inscription   Statut Membre Dernière intervention  
         

        A vrai dire ce n'est pas une question de powershell mais de batch qui interprète les doubles quotes qui du coup ne sont plus là lorsque powershell exécute la commande.

        0
      2. brucine Messages postés 24928 Date d'inscription   Statut Membre Dernière intervention   4 179 > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Oui, tu as raison, ce n'est que dans Batch que la syntaxe PowerShell ne fonctionne pas: je suis donc aussi une quiche en Batch.

        0