Question taille = ***octets ou ko

Plus d'informations
il y a 11 ans 4 mois #15820 par julien
taille = ***octets ou ko a été créé par julien
Bonjour a tous,

je continu mon apprentissage powershell, mais ai encore besoins de vos lumieres...

actuellement je fais un script qui doit me sortir une la taille des fichiers = a une certaine taille.


Voila ma premiere ebauche:
[code:1]

Get-ChildItem -recurse -Path c:\temp |


Where-Object { $_.length -eq $false (254) }


Select-Object Name, FullName, Length |


Out-File \"C:\Temp\\taille.txt\"[/code:1]

Je ne sais pas trop comment formuler ma commande pour la taille du fichier = a....

Si vous avez des pistes :)
Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #15822 par Philippe
Réponse de Philippe sur le sujet Re:taille = ***octets ou ko
bonjour julien_pw

je dirait que $false est en trop dans ton where
essai sans ca devrait aller mieux

mais tu doit aussi precisé que tu veux travailler que sur les fichiers sinon tu aurra une erreur car lenght n'existe pas pour un dossier

[code:1] | Where-Object {$_.PSIsContainer -eq 0 -and $_.Length -eq 24 }[/code:1]

Get-ChildItem renvoie deux type d'info (voir Get-ChildItem -Path c:\temp | Get-Member):
- System.IO.FileInfo -> pour les fichiers
- System.IO.DirectoryInfo -> pour les dossiers

mais length n'est pas dans System.IO.DirectoryInfo, tu doit donc completer ton filter pour ne garder que les fichiers et donc ne pas avoir d'erreur

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #15856 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:taille = ***octets ou ko
Bonsoir,

Simplement pour compléter ce qu'indique 6ratgus, parce qu'il s'agit aussi du Forum 'Entraide pour les débutants' mais aussi que l'occasion fait le lardon ;)

La propriété 'PSIsContainer' est de type '[System.Boolean]' :

[code:1]
PS > $file.PSIsContainer | Get-Member


TypeName : System.Boolean

Name MemberType Definition
----

CompareTo Method int CompareTo(System.Object obj), int CompareTo(bool value), int ICompar
Equals Method bool Equals(System.Object obj), bool Equals(bool obj), bool IEquatable[b
GetHashCode Method int GetHashCode()
GetType Method type GetType()

[/code:1]

L'extrait du code suivant :

[code:1]
| Where-Object {$_.PSIsContainer -eq 0 -and $_.Length -eq 24 }
[/code:1]

Peut également s'écrire :

[code:1]
| Where-Object {$_.PSIsContainer -eq $false -and $_.Length -eq 24 }
[/code:1]

[code:1]
PS > [int]$false
0
PS > [int]$true
1
PS > [bool]0
False
PS > [bool]1
True
PS > [bool]123
True
PS > [bool]$null
False
PS > [bool]\"\"
False
[/code:1]

Via ces exemples, on comprend que le booléen 'True' est lié à la valeur 1 ([system.int32]) mais que si nous typons \"quelque chose qui n'est pas vide\" par [system.boolean] on obtient également un 'True', donc \"quelque chose qui est vrai\".

0, rien ($null) ou une chaine de caractère vide (\"\") correspond à 'False'.

Nous pouvons également utiliser l'opérateur logique '-not' :

[code:1]
| Where-Object {-not $_.PSIsContainer -and $_.Length -eq 24 }
[/code:1]

Pour ce qui concerne la propriété 'Length' d'un objet 'System.IO.FileInfo' (un fichier) elle est toujours renseignée en octets (Bytes).

Pour effectuer une comparaison avec des ko, on peut utiliser le suffixe 'KB' :

[code:1]
| Where-Object {-not $_.PSIsContainer -and $_.Length -eq 24KB }
[/code:1]

D'autres suffixes sont disponibles :

[code:1]
PS > 1KB
1024
PS > 1MB
1048576
PS > 1GB
1073741824
PS > 1TB
1099511627776
PS > 1PB
1125899906842624
[/code:1]

@ +

Matthew BETTON

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #15859 par Philippe
Réponse de Philippe sur le sujet Re:taille = ***octets ou ko
merci Matthew

j'ai encore apris quelque choses ce matin

les suffixes KB/MB/GB/PB... c'est sympas et pratique des fois

encore une bonne info sur ce forum

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.108 secondes
Propulsé par Kunena