Question Lire un fichier de commandes

Plus d'informations
il y a 8 ans 7 mois #21735 par Daniel Brassard
Bonjour,

Je recherche un conseil, pas comment le faire en PowerShell :-)

Je veux créer un \"wrapper\" qui va lire un fichier en input pour lancer des installations. Mon fichier d'input aura des entrées genre:

Msi_file = le_fichier.msi
Transforms = le_transform.mst
Parametres = /qn /l*

Etc...

Mon dilemme est: quel format de fichier serait efficace pour ceci? Un fichier texte, INI ou XML?

Merci pour vos précieux conseils :-)

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

Plus d'informations
il y a 8 ans 7 mois #21736 par Laurent Dardenne
Salut,
Kardock33 écrit:

Mon dilemme est: quel format de fichier serait efficace pour ceci? Un fichier texte, INI ou XML?

De prime abord je dirais XML, pas besoin de code additionnel.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 7 mois #21738 par Arnaud Petitjean
Bonjour,

C'est vrai que le format XML pourrait bien s'y prêter mais cela implique de définir un formalise assez strict.

Je pense que personnellement je partirais sur un fichier INI.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 8 ans 7 mois #21749 par Daniel Brassard
J'avoue que le INI était mon premier choix.

Bon, maintenant faut j'apprenne comment manager un fichier INI ;-)

Merci!

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

Plus d'informations
il y a 8 ans 7 mois #21768 par Philippe
Réponse de Philippe sur le sujet Re:Lire un fichier de commandes
salut

tout dépend si tu veux lire qu'un seul paramètre dans ton fichier ou tous d'un coup et si il y a plusieurs millier de paramètres !!
si il y en n'a peu tu peux tous lire d'un coup et l'exploité c'est plus simple

Bon, maintenant faut j'apprenne comment manager un fichier INI.

d'ou l'avantage du xml
Je pense que Laurent voulais utilisé \"export-clixml/import-clixml\" qui ce gère comme un CSV


ou alors un INI au format csv, simple a utilisé avec export-csv/import-csv<br><br>Message édité par: 6ratgus, à: 27/04/16 12:01

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

Plus d'informations
il y a 8 ans 7 mois #21771 par Laurent Dardenne
Arnaud écrit:

C'est vrai que le format XML pourrait bien s'y prêter mais cela implique de définir un formalise assez strict.

Pas vraiment, du moment où il est bien formé (respect de la syntaxe des balises).
Ensuite on place ce qu'on veux dans un XML ou dans tous type de fichiers structurés. Il y aura donc qq part un contrôle de la structure.

Et pour les données, le côté strict donc, il faut en XML coupler le .xml avec un fichier .xsd :

&lt;xs:annotation&gt;
&lt;xs:documentation&gt;Description d'une machine.&lt;/xs:documentation&gt;
&lt;/xs:annotation&gt;

&lt;!-- ATTENTION
Assurez-vous que les valeurs des types restreints basés sur des énumérations de string,
ne contiennent pas d'espaces ou de tabulations en début ou fin de chaîne.
--&gt;

&lt;xs: simpleType name=\&quot;TMachines\&quot;&gt;
&lt;xs:restriction base=\&quot;xs: string\&quot;&gt;
&lt;xs:enumeration value=\&quot;SERVEUR\&quot;/&gt;
&lt;xs:enumeration value=\&quot;STATIONS\&quot;/&gt;
&lt;xs:enumeration value=\&quot;AUTRES\&quot;/&gt;
&lt;/xs:restriction&gt;
&lt;/xs: simpleType&gt;

&lt;xs: simpleType name=\&quot;TOS\&quot;&gt;
&lt;xs:restriction base=\&quot;xs: string\&quot;&gt;
&lt;xs:enumeration value=\&quot;XP\&quot;/&gt;
&lt;xs:enumeration value=\&quot;W2K3\&quot;/&gt;
&lt;xs:enumeration value=\&quot;W2K8\&quot;/&gt;
&lt;xs:enumeration value=\&quot;Win7\&quot;/&gt;
&lt;/xs:restriction&gt;
&lt;/xs: simpleType&gt;
&lt;/xs: simpleType&gt;

&lt;xs: simpleType name=\&quot;TServicePack\&quot;&gt;
&lt;!-- Format du numéro de service pack --&gt;
&lt;xs:restriction base=\&quot;xs: string\&quot;&gt;
&lt;!--
le format d'un attribut de type Servicepack est
un nombre, de zéro à neuf.
--&gt;
&lt;xs: pattern value=\&quot;^[0-9]$\&quot;/&gt;
&lt;/xs:restriction&gt;
&lt;/xs: simpleType&gt;
...

Ainsi on peut contrôler si le fichier .xml est valide (la validité des données).
C'est ce dernier aspect qui nécessite un peu + de code, + de réflexion et + de tests.

6ratgus écrit:

tout dépend si tu veux lire qu'un seul paramètre dans ton fichier ou tous d'un coup et si il y a plusieurs millier de paramètres !!

Oui tout à fait, ce n'est pas anodin dans le choix d'une structure.

6ratgus écrit:

Je pense que Laurent voulais utilisé \&quot;export-clixml/import-clixml\&quot; qui ce gère comme un CSV

Non je pensais aux APIs XML du framework et aux capacités natives de PS (cf. [XML] )

Un autre point important à propos du choix est : qui crée ce fichier et qui le manipule (hormis par le script en lecture) ?

Si dans ton workflow c'est un utilisateur, le XML est indigeste et à éviter. A moins de créer un GUI dédié : + de code, + de réflexion et + de tests ...<br><br>Message édité par: Laurent Dardenne, à: 27/04/16 13:19

Tutoriels PowerShell

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

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