TUTOS.EU

Générer des commandes dans un bat à partir d'une liste de machines

En Vbscript, commenter générer un fichier bat contenant des commandes en puisant dans un fichier texte comportant une liste de machines

Le fichier à part qui contient la liste des serveurs doit porter le même nom que le script vbs avec en plus le suffix _ListeMachines.txt

Le script vbs

Option Explicit

Dim objFSO, objTextFileBAT, objTextFileListe
Dim CheminScriptActuel, CheminFichierBAT, CheminFichierListeMachines, ScriptFileName
Dim Position
Dim NomMachine, NomCollection

'Déclaration des constantes
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8

NomCollection = "Server Manager Performance Monitor"
NomCollection = Trim(InputBox("Entrez le nom de la collection perfmon","Nom de la collection",NomCollection))

ScriptFileName = wscript.scriptname
Position = InstrRev(ScriptFileName,".")
if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1)

CheminFichierBAT = ScriptFileName & "_Batch.bat"
CheminFichierListeMachines = ScriptFileName & "_ListeMachines.txt"

CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichierBAT = CheminScriptActuel & "\" & CheminFichierBAT
CheminFichierListeMachines = CheminScriptActuel & "\" & CheminFichierListeMachines

If (Len(CheminFichierBAT) > 0) And (Len(CheminFichierListeMachines) > 0) Then

	Set objFSO = CreateObject("Scripting.FileSystemObject")
	
	If objFSO.FileExists(CheminFichierListeMachines) Then 'Si le fichier qui contient la liste des machines existe
		Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForReading, True)
		Set objTextFileBAT = objFSO.OpenTextFile(CheminFichierBAT, ForWritting, True)
		
		Do Until objTextFileListe.AtEndOfStream
			NomMachine = objTextFileListe.Readline 'Lecture et affichage de la ligne
			Wscript.Echo NomMachine
			
			objTextFileBAT.WriteLine("logman stop -n """ & NomCollection & """ -s " & NomMachine)
			objTextFileBAT.WriteLine("logman delete -n """ & NomCollection & """ -s " & NomMachine)
			objTextFileBAT.WriteLine("logman import -n """ & NomCollection & """ -xml C:\Modele.xml -s " & NomMachine)
			'objTextFileBAT.WriteLine("Logman update -n """ & NomCollection & """ -cf ""C:\Compteurs.txt"" -si 01:00 -s " & NomMachine)
			objTextFileBAT.WriteLine("logman start -n """ & NomCollection & """ -s " & NomMachine)
			objTextFileBAT.WriteLine("")
		Loop		
		
		objTextFileBAT.Close 'Fermeture du fichier
		objTextFileListe.Close

		Set objTextFileBAT = Nothing
		Set objTextFileListe = Nothing
	Else
		Wscript.echo "Le fichier '" & CheminFichierListeMachines & "' n'existe pas"
		Set objTextFileListe = objFSO.OpenTextFile(CheminFichierListeMachines, ForWritting, True)
		objTextFileListe.Close 'Fermeture du fichier
		Set objTextFileListe = Nothing
	End If

	Set objFSO = Nothing

Else
	Wscript.echo "Operation annulee"
End If 'CheminFichierBAT
Lien vers le fichier : cliquez ici Copier le code

2