Récupérer taille dossier Powershell dans variable Batch
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
-
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
-
-
@brucine
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.
-
@barnabe0057
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.
-