Flash info

"La connaissance ce n’est point la possession de la vérité, mais d’un langage cohérent."

Antoine de Saint Exupéry (1900-1944)

 
Accueil arrow Bibliothèque de scripts arrow MS Office arrow Récupérer les statistiques d'un document Word
Récupérer les statistiques d'un document Word
Écrit par Arnaud Petitjean [MVP]   
27-08-2007

Ce script permet de récupérer les informations suivantes sur un document Word :

  • Nombre de mots 
  • Nombre de lignes
  • Nombre de pages 
  • Nombre de paragraphes
  • Nombre de caractères (hors espaces)
  • Nombre d'espaces
  • Nom du document
  • Chemin du document
  • Taille du document (en octets)

 # measure-document.ps1
#
# Fournit des statistiques sur le(s) document(s) passé(s) par le pipeline:
#
#   - Characters = Nombre de caractères dans le document (hors 'espace')
#   - Lines      = Nombre de lignes dans le document
#   - Name       = Nom du document
#   - Pages      = Nombre de pages dans le document
#   - Paragraphs = Nombre de paragraphes dans le document
#   - Path       = Chemin du document
#   - Size       = Taille du document (en octets)
#   - Spaces     = Nombre de caractères 'espace' dans le document
#   - Words      = Nombre de mots dans le document
#
# Usage:
#
# dir *.doc | measure-document
#
 
# section exécutée avant le traitement du premier document:
begin
{
  # ouverture de l'application:
  $wordapp = new-object -com word.application
 
  # création de la variable à utiliser pour les paramètres optionnels laissés vides:
  $m = [system.type]::missing
}
 
# section exécutée pour chaque document:
process
{
  # ouverture du document dans Word:
  $doc = $wordapp.documents.open($_.fullname,$m,$true,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m)
 
  # récupération des statistiques:
  $characters = $doc.ComputeStatistics("WdStatisticCharacters")
  $lines = $doc.ComputeStatistics("WdStatisticLines")
  $name = $doc.name
  $pages = $doc.ComputeStatistics("WdStatisticPages")
  $paragraphs = $doc.ComputeStatistics("WdStatisticParagraphs")
  $path = $doc.path
  $size = $_.length
  $spaces = $doc.ComputeStatistics("WdStatisticCharactersWithSpaces") - $characters
  $words = $doc.ComputeStatistics("WdStatisticWords")
 
  # fermeture du document:
  $doc.close()
 
  # construction de l'objet qui contiendra tous les résultats:
  $result = new-object PSObject
 
  # ajout des résultats:
  $result | add-member NoteProperty Characters $characters
  $result | add-member NoteProperty Lines $lines
  $result | add-member NoteProperty Name $name
  $result | add-member NoteProperty Pages $pages
  $result | add-member NoteProperty Paragraphs $paragraphs
  $result | add-member NoteProperty Path $path
  $result | add-member NoteProperty Size $size
  $result | add-member NoteProperty Spaces $spaces
  $result | add-member NoteProperty Words $words
 
  # affichage des résultats:
  $result
}
 
# section exécutée après le traitement du dernier document:
end
{
  # fermeture de l'application:
  $wordapp.quit()
  $wordapp = $null
}

Exemple d'usage sur un document :

PS> dir usb_boot.doc | measure-document

Characters : 14853
Lines      : 296
Name       : usb_boot.doc
Pages      : 8
Paragraphs : 127
Path       : C:\Users\janel\Documents\Private\test\doc
Size       : 75264
Spaces     : 2633
Words      : 2721

Exemple d'usage sur tous les documents Word d'un répertoire:

 
PS> dir *.doc* |  measure-document | measure-object lines,pages -sum -average -min -max | ft -a

Count Average  Sum Maximum Minimum Property
----- -------  --- ------- ------- --------
    5   666,4 3332    1761       3 Lines
    5      19   95      49       1 Pages

Pour plus de détails sur la réalisation de ce script, rendez-vous chez Janel.

Auteur : Janel

Dernière mise à jour : ( 31-08-2007 )
 
© 2020 PowerShell-Scripting.com