PDA

Voir la version complète : Pour les pros...


Schnick
28/11/2006, 15h37
Salut,

Je cherche un exe ou n'importe quoi capable de me modifier en série un fichier ini. J'avais un exe qui s'appelle profstr.exe mais il ne fonctionne pas dans mon cas et jusqu'à présent je n'ai pas encore trouvé de solution.

En fait, j'ai un fichier ini sur une série de machine distante à modifier et je voudrais éviter de devoir le faire à la mano sur chaque site...

Quelqu'un peut-il m'aider ?

Chazam
28/11/2006, 20h23
Ben pas moi, ça, c'est sûr. :hello:

De rien. :mrgreen:

:loose:

Manu Militari
29/11/2006, 09h24
Je cherche un exe ou n'importe quoi capable de me modifier en série un fichier ini.
...
En fait, j'ai un fichier ini sur une série de machine distante à modifier et je voudrais éviter de devoir le faire à la mano sur chaque site...

Je suis plutôt serveur UNIX pour base de donnée, le monde Windows ... moyen pour moi :loose:
Personnellement dans ton cas, je modifierais le fichier .ini à la main pour obtenir un prototype. Puis tu crées un script FTP (à condition d'avoir les droits réseaux adéqueates). Celui-ci se connecte à la machine n°1 puis écrase l'ancienne version par le prototype. ... puis on recommence avec la machine n°2

(On aurais donc 2 fichiers scripts : le premier avec la liste des machines qui appelle le second et lui passe en paramètre l'IP de la machine à traiter. Le second script effectuant l'action proprement dite de connection et de transfert).

Point clé :
Il faut avoir la liste des adresses IP (ou des noms dans le domaine) des machines à modifier
Il faut que la version de fichier .ini soit identique sur chaque machine (pas de spécification particulière)


PS : j'en parlerais à mes collègues de la Hotline. mais nous sommes passé à Active Directory donc logiquement nous n'avons plus ces problèmes :confus:

A+

Lafrite
29/11/2006, 10h17
Salut,

Je cherche un exe ou n'importe quoi capable de me modifier en série un fichier ini. J'avais un exe qui s'appelle profstr.exe mais il ne fonctionne pas dans mon cas et jusqu'à présent je n'ai pas encore trouvé de solution.

En fait, j'ai un fichier ini sur une série de machine distante à modifier et je voudrais éviter de devoir le faire à la mano sur chaque site...

Quelqu'un peut-il m'aider ?

Pour des traitement redondants et distant, pas de solution miracle, il est temps d'apprendre un langage de script (http://fr.wikipedia.org/wiki/Langage_de_script) :)

Si tu travailes en environnement windows pur, regarde du côté de Windows Power Shell (http://fr.wikipedia.org/wiki/Microsoft_Command_Shell) ou du côté de WSH (http://en.wikipedia.org/wiki/WSH) .

Perso je bricole ce genre de truc en Python (http://fr.wikipedia.org/wiki/Python_%28langage%29).

Schnick
29/11/2006, 10h49
Je suis plutôt serveur UNIX pour base de donnée, le monde Windows ... moyen pour moi :loose:
Personnellement dans ton cas, je modifierais le fichier .ini à la main pour obtenir un prototype. Puis tu crées un script FTP (à condition d'avoir les droits réseaux adéqueates). Celui-ci se connecte à la machine n°1 puis écrase l'ancienne version par le prototype. ... puis on recommence avec la machine n°2

(On aurais donc 2 fichiers scripts : le premier avec la liste des machines qui appelle le second et lui passe en paramètre l'IP de la machine à traiter. Le second script effectuant l'action proprement dite de connection et de transfert).

Point clé :
Il faut avoir la liste des adresses IP (ou des noms dans le domaine) des machines à modifier
Il faut que la version de fichier .ini soit identique sur chaque machine (pas de spécification particulière)


PS : j'en parlerais à mes collègues de la Hotline. mais nous sommes passé à Active Directory donc logiquement nous n'avons plus ces problèmes :confus:

A+

Oui mais mon problème est que le fichier ini est unique par machine, je dois y modifier une ligne après l'y avoir copié.

Schnick
29/11/2006, 10h52
Pour des traitement redondants et distant, pas de solution miracle, il est temps d'apprendre un langage de script (http://fr.wikipedia.org/wiki/Langage_de_script) :)

Si tu travailes en environnement windows pur, regarde du côté de Windows Power Shell (http://fr.wikipedia.org/wiki/Microsoft_Command_Shell) ou du côté de WSH (http://en.wikipedia.org/wiki/WSH) .

Perso je bricole ce genre de truc en Python (http://fr.wikipedia.org/wiki/Python_%28langage%29).

Oui c'est un peu pur cela que je fais des études :lol:

Je me demandais en fait s'il n'y avait pas un truc qui existe pour le faire de façon systématique

Lafrite
29/11/2006, 11h03
En Python ça donnerait ça

import ConfigParser
src = "config.ini"
dest = "config.ini"

parser = ConfigParser.ConfigParser()
parser.read(src)

parser.set("SECTION1", "option1", "nouvelle valeur")

fDest = open(dest, "w")
parser.write(fDest)

Dur de trouver plus souple à l'usage, les langages de script c'est le couteau suisse de l'admin réseau. L'équivalent en VBScript doit être un poil plus verbeux mais c'est la même logique.

Tu ne perdras jamais ton temps à apprendre a en manier l'un ou l'autre.

Schnick
29/11/2006, 11h31
En Python ça donnerait ça

import ConfigParser
src = "config.ini"
dest = "config.ini"

parser = ConfigParser.ConfigParser()
parser.read(src)

parser.set("SECTION1", "option1", "nouvelle valeur")

fDest = open(dest, "w")
parser.write(fDest)

Dur de trouver plus souple à l'usage, les langages de script c'est le couteau suisse de l'admin réseau. L'équivalent en VBScript doit être un poil plus verbeux mais c'est la même logique.

Tu ne perdras jamais ton temps à apprendre a en manier l'un ou l'autre.

Et je pourrais mettre "nouvelle valeur" en variable en fonction d'ip de la machine de destination ?

Lafrite
29/11/2006, 11h51
Dans le cas d'un traitement redondant tu dois travailler avec une boucle. A toi de décider la structure de donnée (http://fr.wikipedia.org/wiki/Structure_de_donn%C3%A9e) (tableau, liste, dictionnaire etc..) que tu vas utiliser

Ici je vais utiliser 2 listes.

Je boucle sur la liste des nom PC windows pour ouvrir le fichiers INI sur chacun d'eux. La liste des valeurs est ordonnée pour se caler sur celle des PC, compteur sert à se positionner sur la bonne valeur.

Import ConfigParser

Lst_nomPC=['Quick1','Quick2','Quick3',]
Lst_valeur=['Burger','Salad','LibertyFries']
compteur=0
for eachPC in Lst_nomPC:
src = "config.ini"
dest = "config.ini"
parser = ConfigParser.ConfigParser()
parser.read(eachPC+src)
parser.set("SECTION1", "option1", Lst_valeur[compteur])
fDest = open(eachPC+dest, "w")
parser.write(fDest)
compteur=compteur+1


Exemple vite fait, en réfléchissant y'a moyen de faire mieux. Mais comme les scripts sont souvent à usage unique personne n'est très regardant :lol: