Comande Dos en VBScript ???

cs_chamcham Messages postés 7 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 mars 2006 - 15 mars 2006 à 11:00
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 16 mars 2006 à 06:48
Bonjour,

n'ayant jamais fait de VBScript de ma vie, est-il possible de faire un fichier VBScript realisant la comande DOS suivante :

C:\Documents and Settings> dir *.tif/s >result.xls


Merci d'avance pour les reponses.

3 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
15 mars 2006 à 12:12
Salut ChamCham,

Si tu veux, mets ce qui suit dans un fichier *.vbs, et exécute le. Il existe bien plus simple, mais puisque tu débutes, tant qu'à découvrir, autant bien découvrir.
Et bienvenue en Visual Beginner's All-purpose Symbolic Instruction Code Scripting

'*****************************************
'*** Début du fichier ***
'*****************************************
'appel de la fonction dir
Dir "C:\le repertoire de ton choix", "*.txt","Result2.xls"


'*****************************************
'La fonction Dir
function Dir(strInitPath,strMask,strResultFile)
Dim fso, fldRoot, flResult
'intancie l'objet qui sert à manipuler le système de fichier
Set fso = CreateObject("Scripting.FileSystemObject")
'récupère le répertoire de départ de la scrutation
Set fldRoot = fso.getfolder(strInitPath)

'si le fichier résultat n'existe pas
if not fso.FileExists(strResultFile) then
'le crée
fso.CreateTextFile strResultFile, true
end if
'récupère une référence au fichier résultat
Set flResult = fso.GetFile(strResultFile)
'ouvre un flux d'écriture
'le 2 c'est la constante ForWriting
'le -2 c'est la constante TristateUseDefault
Set tsStream = flResult.OpenAsTextStream(2, -2)

'appelle la fonction de scrutation
DirList fldRoot, tsStream, strMask


'ferme le flux de sortie
tsStream.Close


'notifie la fin du job
msgbox "Scrutation terminée"


end function
'*****************************************

'*****************************************
'La fonction DirList
function DirList(fldTarget,tsResultStream,Mask)
'enlève l'éventuel joker (à spécifier différemment ou à blinder)
Mask=replace(Mask,"*","")
'pour chaque dossier des sous-dossier du dossier reçu
for each fld in fldTarget.subfolders
'pour chaque fichier du dossier courant
for each fl in fld.files
'si le masque cherché est dans le nom du fichier
if instr(1,fl.name,Mask) then
'ajoute le chemin du fichier dans le flux ouvert
tsResultStream.Write fl.path & vbcrlf
end if
'fichier suivant
next
'appel récursif à la fonction courante en lui passant
'le dossier courant (et pas le dossier reçu)
'le flux ouvert
'et le masque
DirList fld, tsResultStream, Mask
'dossier suivant
next


end function
'*****************************************

'*****************************************
'*** Fin du fichier ***
'*****************************************
rvblogn
0
cs_chamcham Messages postés 7 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 15 mars 2006
15 mars 2006 à 13:59
En fait j'ai deja fait un prog en VBScript mais c'est du copi/coller de plusieurs prog différents (qui tourne sans fautes en + je c pas comment j'ai fais lol) mais c vrai que j'ai jamais fait de VBScript.
C'est pour ca que j'ai posté cette question car je voulais un expert pour m'aider ;-)

En tous cas merci bien pour le prog avec les explications je commence a peu comprendre.

Sinon voici mon prog

Set objShell = CreateObject ("Shell.Application")
Set Fso = Wscript.CreateObject("Scripting.FileSystemObject")
Set Afolder = fso.GetFolder("C:\image")
Set objFolder = objShell.Namespace ("C:\image")
Set objFSO = CreateObject("Scripting.FileSystemObject")
SET Rapport = ObjFSO.OpenTextFile("C:\Documents and Settings\T5784900\Desktop\autre.xls",2,TRUE,0)

Dim arrHeaders(13)

Recherche AFolder
Function Recherche (ByRef AFolder)

For i = 0 to 13
arrHeaders(i) = objFolder.GetDetailsOf (objFolder.Items, i)
Next

For Each AFile In AFolder.Files
If UCase(FSO.GetExtensionName(AFile.Path)) = "JPG" Then
Rapport.writeline AFile.path
For i = 0 to 13
If i <> 9 then
Rapport.writeline arrHeaders(i) _
& ": " & objFolder.GetDetailsOf (strFileName, i)
End If
Next
End if
Next

For Each SubF In AFolder.SubFolders
Recherche SubF
Next
End Function

Le seul souci c que je n'ai pas mon resultat souhaité mais j'en suis pas loin car je voudrais la liste de mes fichiers.JPG avec leur date de modification.
Donc la je continu les tutoriaux jusqu'a trouvé la solution

Merci pour l'aide
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 mars 2006 à 06:48
Bonjour

For Each fichiers in fic
'le nom du fichier
strListe = strListe & vbcrlf & vbcrlf & fichiers.Name & " Date (jjmmaa) : " & fichiers.DateLastModified & " Taille (octet) : " & fichiers.Size
Next
0
Rejoignez-nous