[Ex] Outil de création automatique de batchs

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[Ex] Outil de création automatique de batchs

#1

Message par GhostLine »

Bon, mon titre est assez générique, mais je ne sais pas trop comment le nommer :)

Pour mon boulot, j'utilise un serveur doté de TFTPd32, qui me permet de faire une diffusion en PXE sur le réseau. Une image WIM est chargée de manière systématique, et un script est paramétré directement dans l'image WIM pour lancer le fichier SCRIPT.BAT, qui est stocké sur le serveur TFTP, dans un répertoire partagé.

Le hic est que j'ai un large panel de masters à installer, et de clients (sans compter toutes les procédures programmées que je lance après la restauration de l'image sur une machine).

Jusqu'à maintenant, je modifiais à la mano mon fichier SCRIPT.BAT, suivant le besoin : mais là, j'en ai eu marre, et voici le résultat :)

Code : Tout sélectionner

; ***************************************************************
; * Choix master        -   ECRIT PAR GHOST LINE    - 2012      *
; ***************************************************************
; * Ce programme a pour but de simplifier le changement de      *
; * script d'installation sur les serveurs PXE de la plateforme *
; ***************************************************************

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Selecteur", 226, 85, 476, 264)
$client = GUICtrlCreateCombo("client", 0, 0, 225, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$type = GUICtrlCreateCombo("type", 0, 32, 225, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$generer = GUICtrlCreateButton("Générer !", 160, 56, 65, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$ini_file = "C:\definition.ini"
$dest_file = "c:\ghost\script.bat"

$sectionnames = IniReadSectionNames($ini_file)
local $Namenliste
For $i = 1 To $sectionnames[0]
    $Namenliste = $Namenliste & "|" & $sectionnames[$i]
Next
GUICtrlSetData($client, $Namenliste, $sectionnames[1])

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    case $client
        $masternames = IniReadSection($ini_file,GUICtrlRead($client))
        $masterliste = ""
        For $i = 1 To $masternames[0][0]
            $masterliste = $masterliste & "|" & $masternames[$i][0]
        Next
        GUICtrlSetData($type, $masterliste, $masternames[1][0])
    Case $generer
        FileWrite(FileOpen($dest_file,2),IniRead($ini_file,GUICtrlRead($client),GUICtrlRead($type),"NotFound"))
        Exit
    EndSwitch
WEnd
Un exemple du fichier INI :

Code : Tout sélectionner

[CELIO]
Master caisse français = ghost32.exe -clone,mode=restore,src="y:\CELIO\master fr\WincorV9\WINFRAV9.GHO",dst=1 -sure -crcignore -or
Master caisse italien = ghost32.exe -clone,mode=restore,src="y:\\CELIO\master italie celio\MasterV4\WINCOR V4 ITALIE.GHO",dst=1 -sure -crcignore -or
Master caisse espagnol = ghost32.exe -clone,mode=restore,src="y:\CELIO\MASTER ESP V3\WINCORV3ESP.GHO",dst=1 -sure -crcignore -or
Master caisse belge fr =ghost32.exe -clone,mode=restore,src="y:\CELIO\Wincor BL FRA V3\WincorV3BELFRA.GHO",dst=1 -sure -crcignore -or
Master caisse belge fl = ghost32.exe -clone,mode=restore,src="y:\CELIO\Wincor BL FLA V3\WincorBELFLAMANDV3.GHO",dst=1 -sure -crcignore -or
Master Dell 390 = ghost32.exe -clone,mode=restore,src="y:\CELIO\celio PC DELL 390 V1\pc DELL 390.GHO",dst=1 -sure -crcignore -or

[TOTAL]
Master caisse = y:\total\script_total.bat

[PICARD]
Master caisse = y:\picard\script_picard.bat
Répondre