TUTOS.EU

Préparer un fichier bat

Création d'un fichier bat avec les commandes nécessaires pour se rendre dans le répertoire contenant le Vbscript et éventuellement exécuter des commandes sur des fichiers contenus dans le répertoire

Le script

'Version du 18 aout 2014
'Prepare un fichier .bat avec les commandes nécessaires pour sélectionner le lecteur contenant ce fichier vbscript, la commande CD qui permet de se rendre dans le répertoire actuel
'et éventuellement des commandes à passer par rapport a des fichiers contenus dans le répertoire

Option Explicit

Dim objFSO, objFolder, objTextFile, MyFile, CheminScriptActuel, NomScriptSansExtension, NomScriptBat, CheminScriptBat, CheminRepertoireAExplorer
Dim Position, ExtensionFichier, NomFichierSansExtension

'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)

'ExtensionFichier = ""
Position = InStrRev(wscript.scriptname,".")
'ExtensionFichier = Mid(MyFile.Name,Position+1)
NomScriptSansExtension = Left(wscript.scriptname,Position-1)
NomScriptBat = NomScriptSansExtension & "_Script.bat"

CheminScriptBat = CheminScriptActuel & "\" & NomScriptBat
CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire","Chemin du répertoire",CheminScriptActuel)

'Création des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")

'On fait un objet qui représente le répertoire à explorer
Set objFolder = objFSO.GetFolder(CheminRepertoireAExplorer)
Set objTextFile = objFSO.OpenTextFile(CheminScriptBat, ForWritting, True)

If Left(CheminScriptActuel, 2) = "\\" Then
	objTextFile.WriteLine("REM Attention : Les chemmins réseau ne sont pas traités correctement.")
	Wscript.echo "Attention : Les chemmins réseau ne sont pas traités correctement."
Else
	objTextFile.WriteLine(Left(CheminScriptActuel, 1) & ":")
End If

objTextFile.WriteLine("Cd """ & CheminScriptActuel & """")
For Each MyFile In objFolder.Files

	ExtensionFichier = ""
	Position = InStrRev(MyFile.Name,".")

	If (Position > 0) And (Position < Len(MyFile.Name)) Then
		ExtensionFichier = Mid(MyFile.Name,Position+1)
		NomFichierSansExtension = Left(MyFile.Name,Position-1)
		If (Lcase(ExtensionFichier) = "vbs") Or (Lcase(ExtensionFichier) = "txt") Then
			objTextFile.WriteLine("REM """ & MyFile.path & """")
		End If	

	End If

Next

objTextFile.Close
Set objTextFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

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

2