Lire un fichier texte et détruire des fichiers

[Résolu]
Signaler
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013
-
Bonjour

Je suis débutant en VBS

J'ai besoin de faire un VB Script qui serait capable de lire un fichier texte
qui contient une liste de fichier et de détruire ces fichiers

exemple de mon fichier

c:\temp\1.txt
D:\2.cmd
c:\temp\test\2.txt

Je veux que le script détruise les fichiers un a un

Merci d'avance de votre aide !

12 réponses

Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour,

Set FSO = ...
obj.DeleteFile(TEMP_Line)

Question, que représente obj ?
Ne serait-ce pas l'objet FSO qu'il faut utiliser ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour,


Avant de lire ou supprimer un fichier, il est préférable de contrôler son existence.



Option Explicit
Const MyFile = "H:\SCRIPTS\DeleteFile.txt"
Dim objFso, objTextStream
Dim strLine

Set objFso = CreateObject("Scripting.FileSystemObject")
If Not objFso.FileExists(MyFile) Then WScript.Quit
Set objTextStream = objFso.OpenTextFile(MyFile, 1)
  
Do While Not objTextStream.AtEndOfStream
   strLine = Trim(objTextStream.ReadLine)
   If objFso.FileExists(strLine) Then objFso.DeleteFile strLine, True
Loop
objTextStream.Close
Set objTextStream = Nothing
Set objFso = Nothing 





jean-marc
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour,

Qu'as-tu essayer ?
FSO ?
Open, Close, Line Input, ... ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Bonjour

Je suis vraiment débutant en VBS !

j'utilise ceci pour détruire mes objects mais j'ignore comment lire mon fichier et de mettre ça dans une variable

Set obj = CreateObject("Scripting.FileSystemObject")
obj.DeleteFile("C:\Temp\1.txt")

Merci
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour,

http://www.google.fr/...

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

OK

apres avoir lu le tuto, j'ai écris ce code mais .........ca plante

Ligne: 1
Caract: 12
code:800A0401



Public FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")

Sub Form1_Load()

Dim File As Object
Set File = FSO.OpenTextFile("C:\temp\4.txt", 1, True)

Dim TEMP_Line As String

Do While Not File.AtEndOfStream

TEMP_Line = File.ReadLine

obj.DeleteFile("TEMP_Line")

File.Close

End Sub
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour,

Tu as fais du VB6 dans VBS, c'est normal.

Pas de Public, ni de type en VBS :
Public FSO As Object
Devient
Dim FSO

Dim TEMP_Line As String
--------
Dim TEMP_Line

Sinon, retire la Sub Form_Load, tu n'en a pas besoin actuellement. (juste la déclaration, pas le code contenu)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Merci beaucoup NHenry !

Voici mon nouveau code, ca plante avec l'erreur suivante

Ligne:15
Caract:1
Erreur:`Loop` attendu
Code:800A03FB

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Set File = FSO.OpenTextFile("C:\temp\4.txt", 1, True)

Dim TEMP_Line

Do While Not File.AtEndOfStream

TEMP_Line = File.ReadLine

obj.DeleteFile("TEMP_Line")

File.Close
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour,

Mets un Loop avant de fermet le fichier.
Ensuite, si tu fais :
obj.DeleteFile("TEMP_Line")

Tu vas supprimer le fichier portant le nom "TEMP_Line", mais pas le nom du contenu de la variable, retires les "

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Salut NHenry

Encore un message d'erreur

Ligne:12
Caract:1
Erreur: Objet requis:`obj`

Merci

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Set File = FSO.OpenTextFile("C:\temp\4.txt", 1, True)

Dim TEMP_Line

Do While Not File.AtEndOfStream

TEMP_Line = File.ReadLine

obj.DeleteFile(TEMP_Line)

Loop

File.Close
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonsoir,

Varaible File non déclarée.


[] Ce qui va sans dire. va mieux en le disant.
Messages postés
51
Date d'inscription
lundi 2 octobre 2006
Statut
Membre
Dernière intervention
14 février 2013

Merci beaucoup a vous deux NHenry et JMO !!!