Lire un fichier texte et détruire des fichiers

Résolu
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 12 juil. 2012 à 20:05
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013 - 13 juil. 2012 à 14:45
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2012 à 23:16
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
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
13 juil. 2012 à 06:54
 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
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2012 à 20:13
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
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
12 juil. 2012 à 20:17
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2012 à 20:21
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
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
12 juil. 2012 à 20:42
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2012 à 20:50
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
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
12 juil. 2012 à 21:03
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 juil. 2012 à 21:26
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
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
12 juil. 2012 à 21:37
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
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
13 juil. 2012 à 00:09
Bonsoir,

Varaible File non déclarée.


[] Ce qui va sans dire. va mieux en le disant.
0
spmsbl Messages postés 51 Date d'inscription lundi 2 octobre 2006 Statut Membre Dernière intervention 14 février 2013
13 juil. 2012 à 14:45
Merci beaucoup a vous deux NHenry et JMO !!!
0
Rejoignez-nous