IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Rechercher une chaîne de caractères dans un DOCX sans Word installé sur le PC


Sujet :

Scripts/Batch

  1. #21
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par yamaha12 Voir le message
    Vraiment un très bon travail, merci !
    C'est Eric White qu'il faut féliciter, moi j'ai juste assemblé le carton
    Citation Envoyé par yamaha12 Voir le message
    J'ai la version 5 de powershell. Juste pour savoir, ça ne fonctionne pas sur les versions antérieurs ?
    Le module fonctionne avec la version 3 de Powershell ( framework dotnet 4.0).
    La 5 c'est pour PowershellGet ( je crois qu'il existe une version pour la v3 et v4, à vérifier)
    Citation Envoyé par yamaha12 Voir le message
    La code powershell que tu indiques ci-dessous pour la recherche est la preuve que ça fonctionne.
    Oui, mais cela ne remplace pas une batterie de test. En même temps c'est MS en face, on peut donc s'en contenter.
    Citation Envoyé par yamaha12 Voir le message
    Quel est l'intérêt de l'utiliser pour l'import' ?
    C'est juste pour accéder aux métadonnées du module, ici pour connaitre le chemin du .docx de l'exemple. Sinon ce paramètre n'a pas d'utilité pour une usage normal.

    Je suis en train de regarder si l'accès aux cmdlets 'masqués' est possible, mais c'est un jeu de piste comme on les déteste
    Ici le post référence ces cmdlets, je ne comprends donc pas pourquoi on ne peut plus y accéder désormais....

    Tu comptes faire de la prod avec ce module ?

  2. #22
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Pour info, la présence sur mon poste d'une ancienne version (2.2.3 - 2014) était appelée avant le module de test, donc les cmdlets cités n'existent plus car :
    Version 3.0.00 : October 29, 2014


    • New release of cmdlets that are written as 'Advanced Functions' instead of in C#.
    Le module de type binaire avait la version 2.2.3, le projet dés la version 3.0 utilise un module de script avec une version 1.0.0. C'est simple
    Le fichier 'OpenXmlPowerTools.dll-Help.xml' est peut être inutile.
    J'ai modifié le manifest et commenté ce code présent au début du module :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $ver = $PSVersionTable.PSVersion
    if ($ver.Major -lt 3) { throw "You must be running PowerShell 3.0 or later" }
    if (Get-Module Open-XML-PowerTools) { return }
    Le contrôle de version est géré dans le manifeste, clé : PowerShellVersion = '3.0'
    Et le get-module ne sert à rien, car Import-Module charge le module uniquement s'il n'existe pas dans la table des modules, et le recharge que si on précise -Force qui lui supprime le module avant de le recharger.

    Le fichier PptxLib.ps1 déclare des variables encodées, je n'ai pas vérifié leur contenu. Les fichiers n'étant pas signé il te reste à faire confiance

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Ok, j'ai donc commenté les lignes que tu indiquais.

    Concernant le fichier PptxLib.ps1, j'ai commenté, au cas où, également dans le manifeste les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # PPTX
    #. "$PSScriptRoot\Cmdlets\New-Pptx.ps1"
    #. "$PSScriptRoot\Cmdlets\Merge-Pptx.ps1"
    #. "$PSScriptRoot\Cmdlets\PptxLib.ps1"
    #. "$PSScriptRoot\Cmdlets\New-PmlDocument.ps1"
    
    ET les lignes 
    
            # PPTX
            'New-Pptx',
            'Merge-Pptx',
            'New-PmlDocument'
    Je n'ai pas besoin de gérer des PPTX.


    par contre, désolé, mais je ne comprends pas très bien ce que tu entends par :
    Pour info, la présence sur mon poste d'une ancienne version (2.2.3 - 2014) était appelée avant le module de test, donc les cmdlets cités n'existent plus car :
    De quel poste parles-tu ? tu as déjà travaillé sur ce module auparavant ?

  4. #24
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yamaha12 Voir le message
    Concernant le fichier PptxLib.ps1, j'ai commenté, au cas où, également dans le manifeste les lignes suivantes :
    C'est radical !
    Je suis en train de regarder comment considérer (safe or not) le contenu encodé .
    Citation Envoyé par yamaha12 Voir le message
    De quel poste parles-tu ?
    Le mien.
    Citation Envoyé par yamaha12 Voir le message
    tu as déjà travaillé sur ce module auparavant ?
    Oui, enfin étudié sans jamais l'utiliser en prod ayant tjr Office via OleAutomation.
    Je comptais aborder la création automatique de rapport.

    Je viens de vérifier le code avec PScriptAnalyzer il y a 2 fichiers à corriger :
    Invoke-ScriptAnalyzer : Parse error in file G:\PS\openXML\Publish\Cmdlets\New-Pptx-Template.ps1: Missing expression after ',' at line 51 column 22.
    Invoke-ScriptAnalyzer : Parse error in file G:\PS\openXML\Publish\Cmdlets\New-Docx-Template.ps1: Missing expression after ',' at line 53 column 22.
    Il y a de nombreux warning, notamment 6 sur la règle PSPossibleIncorrectComparisonWithNull. Je regarde s'il est préférable de le corriger ou pas, mais là on dérive du repository d'origine
    Après ça je republierais une version du package 1.0.1.
    Enfin la dernière intervention de Eric White (pour les bugs) date d'avril 2016, je n'ai pas vérifié si toutes les issues étaient bloquantes.

  5. #25
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Les warnings sur la règle SPossibleIncorrectComparisonWithNull ne manipule pas de tableau et le seul cas existant ne contiendra pas de valeur $null mais de possibles process invalides (rare mais possible).

    Attention ces fonctions utilisent Office :
    .\Cmdlets\New-Docx.ps1
    365: $Word = New-Object -Com Word.Application
    .\Cmdlets\New-Docx-Template.ps1
    95: $Word = New-Object -Com Word.Application

    .\Cmdlets\New-Pptx.ps1
    224: $PowerPoint = New-Object -ComObject Powerpoint.Application
    .\Cmdlets\New-Pptx-Template.ps1
    108: $PowerPoint = New-Object -ComObject Powerpoint.Application
    A ne pas utiliser sur une une tâche planifiée par exemple.

    New-Pptx.ps1
    La suppression du prg Powerpoint s'il est chargé semble pose pb dans le code...
    Et ce code ne tient pas compte de la présence de plus d'une instance de Powerpoint, à tester si c'est un pb potentiel.

    Le fichier 'OpenXmlPowerTools.dll-Help.xml' est bien utile et j'ai laissé le script PptxLib.ps1 en l'état.

    Je viens de publier une nouvelle version avec les scripts New-Pptx-Template.ps1 et New-Docx-Template.ps1 corrigés.

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Intéressant PScriptAnalyzer, je ne connaissais pas.
    Je regarderai mon script avec afin de le valider

    Vraiment bien, tous le travail que tu réalise pour la communauté !
    Je suivrai le post au cas où que tu sortes la V1.0.1

    EDIT : Haa nos messages ce sont croisés ! Je regarde la V1.0.1

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/07/2014, 02h31
  2. Réponses: 2
    Dernier message: 17/01/2010, 01h01
  3. Réponses: 3
    Dernier message: 13/05/2008, 13h11
  4. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo