TUTOS.EU

Vérification de l'abscence d'une liste de fichiers

Comment vérifier qu'une liste de fichiers n'existe pas dans différents emplacements

Dim objFSO, objFichierLog, objFichierResultat, CheminScriptActuel, CheminFichierdeLog, CheminFichierResultat

Dim WSHShell
Dim vAPPDATA, vSystemDrive, vSystemRoot, vSESSIONNAME, vCOMPUTERNAME, vProgramFilesx32, vProgramFilesx64
Dim ListeFichiers, ListeEmplacements, UnEmplacement, UnNomDeFichier, TableauEmplacements, TableauListeFichiers, UnCheminDeFichier

Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8


ListeFichiers = "23.cmd;madll.dll;monfichier.tmp;"

CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)

Set WSHShell = CreateObject("WScript.Shell")

vAPPDATA = WSHShell.ExpandEnvironmentStrings("%APPDATA%")
vSystemDrive = WSHShell.ExpandEnvironmentStrings("%SystemDrive%") 'Retourne C: en général (sans le \ à la fin)
vSystemRoot = WSHShell.ExpandEnvironmentStrings("%systemroot%")
vSESSIONNAME = WSHShell.ExpandEnvironmentStrings("%SESSIONNAME%")
vCOMPUTERNAME = WSHShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
vProgramFilesx32 = WSHShell.ExpandEnvironmentStrings("%programfiles(x86)%")
vProgramFilesx64 = WSHShell.ExpandEnvironmentStrings("%programfiles%")

If Left(vProgramFilesx32,1) = "%" Then
	'Si on est sur un système 32bits, alors le chemin du répertoire Program Files est dans vProgramFilesx64 et non vProgramFilesx32.
	'Du coup on recopie l'un dans l'autre et on efface la variable vProgramFilesx64
	vProgramFilesx32 = vProgramFilesx64
	vProgramFilesx64 = ""
End If

'ListeFichiers = Replace(Lcase(ListeFichiers), "%systemroot%", vSystemRoot)

ListeEmplacements = vSystemRoot & ";" & vSystemRoot & "\System32;" & vSystemRoot & "\Addins;" & vSystemDrive & "\System Volume Information"

Set objFSO = CreateObject("Scripting.FileSystemObject")

CheminFichierdeLog = CheminScriptActuel & "\" & wscript.scriptname & "_" & vCOMPUTERNAME & "_Log.txt"
CheminFichierResultat = CheminScriptActuel & "\" & wscript.scriptname & "_" & vCOMPUTERNAME & "_Resultat.txt"

Wscript.Echo "Fichier de log dans " & CheminFichierdeLog
Wscript.Echo "Fichier avec les résultats dans " & CheminFichierResultat

Set objFichierLog = objFSO.OpenTextFile(CheminFichierdeLog, ForWritting, True)
Set objFichierResultat = objFSO.OpenTextFile(CheminFichierResultat, ForWritting, True)

ParseCaracter = ";"
TableauEmplacements = Split(ListeEmplacements, ParseCaracter)
TableauListeFichiers = Split(ListeFichiers, ParseCaracter)

'Pour chaque emplacement
For Each UnEmplacement In TableauEmplacements
	'Pour chaque fichier
	For Each UnNomDeFichier In TableauListeFichiers
		'UnCheminDeFichier = Trim(UnCheminDeFichier)
		UnCheminDeFichier = UnEmplacement & "\" & UnNomDeFichier
		'Wscript.Echo "Recherche de " & UnCheminDeFichier

		objFichierLog.WriteLine("Recherche de " & UnCheminDeFichier)
		
		If objFSO.FileExists(UnCheminDeFichier) Then
			objFichierResultat.WriteLine(UnCheminDeFichier)
			'Set objFichier = objFSO.GetFile("C:\Lefichier.txt")
			'Set objFichier = Nothing
		Else
			'Wscript.Echo "Fichier non present"
		End If

	Next
Next

objFichierLog.Close 'Fermeture du fichier
objFichierResultat.Close 'Fermeture du fichier

Set objFichierLog = Nothing
Set objFichierResultat = Nothing

Set objFSO = Nothing
Set WSHShell = Nothing

Wscript.Echo "Terminé"
Lien vers le fichier : cliquez ici Copier le code

Article(s) précédent(s)

Article(s) en relation(s)

2