Quelques exemples de codes en VBS
——————————————————–
Faire un explorateur (Browser) en VBS
Si vous avez besoin de choisir un fichier pour un traitement en VBS, voici un code qui vous permettra d’ouvrir une fenêtre d’exploration pour récupérer le nom du fichier dans une variable mémoire
'--------------------------------------------------------------------------------------
'@Script: browser.vbs
'@author: Olivier Benquet 2019
'@usage :
'Pour choisir un Fichier via une fenêtre d'exportation
'--------------------------------------------------------------------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Fonction explorateurvbs le résultat de sortie est la variable filebrowser=
Function explorateurvbs(InitDir,Filtre,Titre)
Set explorer = CreateObject("WScript.Shell").Exec( _
"mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object>" & _
"<script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject')" & _
".GetStandardStream(0).Read(" & _
Len(InitDir)+Len(Filtre)+Len(Titre)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject')" & _
".GetStandardStream(1).Write(p.exec(d.object.openfiledlg(initDir,null,filtre,titre)));close();}</script><hta:application showintaskbar=no />""")
explorer.StdIn.Write "var initDir='" & InitDir & "';var filtre='" & Filtre & "';var titre='" & Titre & "';"
explorateurvbs = explorer.StdOut.ReadAll
End Function
result=MsgBox ("Programme VBS pour récupérer un nom de fichier " & VbCrLf &_
"avec son chemin" & VbCrLf & VbCrLf &_
"Oui = Pour Lancer l'explorateur" & VbCrLf & VbCrLf &_
"Non = arrète le VBS", vbYesNo+vbInformation , "Explorateur VBS")
If result=6 Then 'si réponse oui
'Répertoire par défaut où va s'ouvrir l'explorateur - vous pouvez utiliser des jocker en remplaçant par exemple :
' *.* par *.pdf pour n'afficher que le PDF ou par essai*.* pour n'afficher que les fichiers commençant par essai
InitDir = "c:\temp\*.*"
'Filtres rapide paramétrable - vous pouvez aussi enlever cette ligne (supprime le choix d'un filtre)
Filtre = "All File (*.*)|*.*|pdf files (*.pdf)|*.pdf|csv files (*.csv)|*.csv|txt files (*.txt)|*.txt|log files (*.log)|*.log|"
'Titre de la fenetre d'exploration
Titre = "Choisissez votre Fichier"
'lancement de l'explorateur et recupération du nom de fichier
filebrowser = explorateurvbs(Replace(InitDir,"\","\\"),Filtre ,Titre)
'affichage de la variable contenant le fichier séléctionné
affiche = MsgBox ("Vous avez sélectionné :" & VbCrLf & VbCrLf & VbCrLf & _
filebrowser & VbCrLf, vbOKOnly+vbInformation, "Explorateur VBS")
End if
Set objFSO = Nothing
Wscript.Quit
——————————————————–
Retirer le Chemin (répertoire) devant un nom de fichier
Voici un petit bout de code qui permet de retirer le chemin d’un fichier pour ne conserver que son nom. Si vous utiliser mon explorateur par exemple vous allez obtenir une variable avec le chemin complet (exemple c:\temp\toto.txt) mais voila vous voulez le copier ailleurs donc récupérer son nom toto.txt sans le chemin c:\temp\
Il vous suffit d’utiliser ce petit code :
'Nom du fichier avec son chemin
filebrowser = "c:\temp\toto.txt"
'récupération du nom du fichier sans son chemin
NomCourtFichier = CreateObject("Scripting.FileSystemObject").GetFileName(filebrowser)
'affichage du résultat
affiche = MsgBox ("Vous aviez le fichier avec le chemin : " & filebrowser & VbCrLf & VbCrLf & VbCrLf & _
"Vous obtenez : " & NomCourtFichier & VbCrLf, vbOKOnly+vbInformation, "Explorateur VBS")
Wscript.Quit