TUTOS.EU

Générer des lignes de commandes relatives à des sous-répertoires

Générer un fichier bat comportant des lignes de commandes spécifiques à chaque sous-répertoire d'un dossier donné

Le VbScript ci-dessous écrit dans un fichier .bat une commande spécifique à chaque sous-répertoire qui sera demandé dans une fenêtre de saisie

Option Explicit

Dim CheminScriptActuel, ScriptFileName, Position
Dim CheminRepertoireAExplorer
Dim objFSO, objFolder, objTextFile, MonFolder, CheminFichier
Dim UneCommande

'Déclaration des constantes pour la lecture et l'ecriture dans les fichiers
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8


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

CheminFichier = CheminScriptActuel & "\" & ScriptFileName & "_Resultat.bat"
CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire","Chemin du répertoire",CheminScriptActuel)

'Création des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(CheminFichier, ForWritting, True)

'On fait un objet qui représente le répertoire à explorer
Set objFolder = objFSO.GetFolder(CheminRepertoireAExplorer)

For Each MonFolder In objFolder.SubFolders

	'Wscript.echo MonFolder.Name
	'Wscript.echo MonFolder.Path
	
	'Exemple de commande. Modifiez 'UneCommande' cette ligne avec le résultat désiré :
	UneCommande = "echo """ &  MonFolder.Path & """"
	objTextFile.WriteLine(UneCommande) 'Ecriture de la commande dans le fichier BAT

Next

objTextFile.Close 'Fermeture du fichier
Set objTextFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

Wscript.Echo "Fichier bat généré : " & CheminFichier
Lien vers le fichier : cliquez ici

Ci dessous nous avons un exemple d'adaptation à incorporer qui permet, par profil présent dans C:\Documents and Settings,d'effacer les fichiers temporaires d'outlook plus anciens de 3 jours

CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire","Chemin du répertoire","C:\Documents and Settings")

For Each MonFolder In objFolder.SubFolders
	UneCommande = "forfiles /p  """ & MonFolder.Path & "\Local Settings\Temporary Internet Files\OLK1" & """ /s /m *.* /d -3 /c ""cmd /C del /Q /F @FILE"""
	objTextFile.WriteLine(UneCommande) 'Ecriture de la commande dans le fichier BAT
Next

Lien vers le fichier : cliquez ici

Article(s) en relation(s)