IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Comparaison entre Repertoire_Fichier


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 4
    Par défaut Comparaison entre Repertoire_Fichier
    Bonjour,

    J'ai un répertoire contenant certains fichiers et un fichier texte contenant des noms de fichiers par ligne.

    Je voudrais effectuer une verification telle que pour fichier dans le repertoire dont le nom de fichier se trouve dans mon fichier texte, le fichier dans le repertoire soit supprimé.

    Pour cela j'ai fait un script, et celui ci ne fonctionne pas, voudriez vous m'apporter votre aide svp.


    *******Mon Script*************
    'Ma fonction de verification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Function Verification(NomFichier)
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("testfranck.txt",1)
    Do Until objFile.AtEndOfStream
    	strLigne=objFile.ReadLine
    	if strLigne=NomFichier then
    		verification=1
    	End if
    Loop
    objFile.Close
    End Function
     
    'le corps du script même
    Set objFSO= CreateObject("Scripting.FileSystemObject")
    Set MonRepertoire=objFSO.GetFolder("destination")
    Set CollecFichier=MonRepertoire.Files
    ' Pour chaque element du repertoire sur le lecteur réseau verifier s'il existe dans le fichier texte des mp4, si c'est le cas, il faut le supprimer
    For Each Fichier in CollecFichier
    	'wscript.echo Fichier.Name
    	if verification(Fichier.Name)=1 then
    		Set Tobedeleted=objFSO.GetFile(Fichier.Name)
    		 Tobedeleted.delete
    	End if
    Next

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Salut;

    Je pense que la méthode "Delete" ne peut pas accéder au fichier car tu fournis uniquement le nom à partir du fichier texte contenant la liste des fichiers. Il faut donc fournir le chemin complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Explicit
    Dim tb,Ret,Count,objFich,objFSO
    Dim tobedeleted,myDir,AllFiles,Fich,FileName
     
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFich = objFSO.OpenTextFile("testfranck.txt",1)
     
    Ret=objFich.ReadAll
    tb=Split(Ret,VbNewLine)
    objFich.Close
     
    Set myDir=objFSO.GetFolder("destination")
    Set AllFiles=myDir.Files
     
    For Each Fich in AllFiles
         FileName=Right(Fich.Path,Len(Fich.Path)-InStrrev(Fich.Path,"\"))
         For count=LBound(tb) to Ubound(Tb)
           if Ucase(tb(count))=Ucase(FileName)  then
              Set Tobedeleted=objFSO.GetFile(Fich.Path)
    	  msgbox tobedeleted
    	 ' Tobedeleted.delete
           end if
        Next
    Next
    Teste alors avec MsgBox (ou Echo) puis dé-commente la ligne de suppression(Tobedeleted.Delete)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut
    Salut
    1- il faut bien vérifier que le dossier destination et le fichier texte testfranck.txt et ce script se trouvent dans le même Dossier
    2- il faut utiliser le chemin du fichier à supprimer !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tobedeleted=objFSO.GetFile(Fichier.Path)
    au lieu de son nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tobedeleted=objFSO.GetFile(Fichier.Name)
    3-utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    verification=True et if verification(Fichier.Name)=True
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    verification=1 et if verification(Fichier.Name)=1
    Donc le Code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Function Verification(NomFichier)
    verification=False
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("testfranck.txt",1)
    Do Until objFile.AtEndOfStream
    	strLigne=objFile.ReadLine
    	if strLigne=NomFichier then
    		verification=True
    	End if
    Loop
    objFile.Close
    End Function
     
    'le corps du script même
     
    Set objFSO= CreateObject("Scripting.FileSystemObject")
    Set MonRepertoire=objFSO.GetFolder("destination")
    Set CollecFichier=MonRepertoire.Files
    ' Pour chaque element du repertoire sur le lecteur réseau verifier s'il existe dans le fichier texte des mp4, si c'est le cas, il faut le supprimer
    For Each Fichier in CollecFichier
    	if verification(Fichier.Name)=True then
    	MsgBox "Attention ! Le Fichier " &Fichier.path& "  Va être Supprimé ?",vbQuestion,"Supprimer ce Fichier ?"
    		Set Tobedeleted=objFSO.GetFile(Fichier.Path)
    		Tobedeleted.delete
    		else
    	MsgBox " Pas de Fichier à supprimer ! ",16,"Supprimer Fichier !"	
    	End if
    Next

Discussions similaires

  1. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53
  2. Requete de comparaison entre 2 champs
    Par wallaz dans le forum Access
    Réponses: 2
    Dernier message: 23/09/2005, 19h17
  3. Comparaison entre les classes et les fonctions
    Par Ashgenesis dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 08/09/2005, 19h09
  4. comparaison entre 2 tables
    Par halina dans le forum Requêtes
    Réponses: 10
    Dernier message: 13/05/2005, 15h18
  5. Réponses: 6
    Dernier message: 21/01/2004, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo