Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment appliquer un If FileExists avec des caracteres generiques

7 réponses
Avatar
merlin01fr
Bonjour

je cherche a verifier la presence d'un fichier dont une partie du corps est
issu de variable fixe et une partie issue de variable de temps (donc qui peut
varier) , le but etant de supprimer ce fichier s'il est trouvé .

Mon code

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Verification de la presence ou non du fichier normalement crée à '
' la fin du script et qui permet de verifier si le releve '
' d'inventaire a ete fait '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

VerifFichierLog = SousRepDeBaseVerifUser & "\" & NomDuParc & " " &
NomDuPoste & " - (" & _
SessionActive & ") - " & MonExtractionDuMois & " " & year(now) &
".txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(VerifFichierLog)) Then

Wscript.Quit (1)

End If

Si quelqu'un a une idee je suis preneur

Cordialement

7 réponses

Avatar
Georges MAUREL
Bonjour,
Je ne voies pas où se trouve le problème car votre code doit fonctionner
Pour être sur vous devriez faire afficher le contenu de la variable
VerifFichierLog
Pour supprimer le fichier s'il existe, il vous faut faire un
fso.deletefile(VerifFichierLog)

Cordialement
Georges



"merlin01fr" a écrit dans le message
de news:
Bonjour

je cherche a verifier la presence d'un fichier dont une partie du corps
est
issu de variable fixe et une partie issue de variable de temps (donc qui
peut
varier) , le but etant de supprimer ce fichier s'il est trouvé .

Mon code

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Verification de la presence ou non du fichier normalement crée à '
' la fin du script et qui permet de verifier si le releve '
' d'inventaire a ete fait '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

VerifFichierLog = SousRepDeBaseVerifUser & "" & NomDuParc & " " &
NomDuPoste & " - (" & _
SessionActive & ") - " & MonExtractionDuMois & " " & year(now) &
".txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(VerifFichierLog)) Then

Wscript.Quit (1)

End If

Si quelqu'un a une idee je suis preneur

Cordialement


Avatar
Yannick SCHAPPLER
Bonjour,

Votre question porte t-elle sur comment supprimer le fichier ?
ou sur comment composer la variable ???

Votre code semble correct....
Si vous aviez quelques précisions complémentaires.


YS

"merlin01fr" a écrit dans le message
de news:
Bonjour

je cherche a verifier la presence d'un fichier dont une partie du corps
est
issu de variable fixe et une partie issue de variable de temps (donc qui
peut
varier) , le but etant de supprimer ce fichier s'il est trouvé .

Mon code

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Verification de la presence ou non du fichier normalement crée à '
' la fin du script et qui permet de verifier si le releve '
' d'inventaire a ete fait '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

VerifFichierLog = SousRepDeBaseVerifUser & "" & NomDuParc & " " &
NomDuPoste & " - (" & _
SessionActive & ") - " & MonExtractionDuMois & " " & year(now) &
".txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(VerifFichierLog)) Then

Wscript.Quit (1)

End If

Si quelqu'un a une idee je suis preneur

Cordialement


Avatar
Jean-Claude BELLAMY
Dans le message :,
merlin01fr a pris la peine d'écrire
ce qui suit :
Bonjour

je cherche a verifier la presence d'un fichier dont une partie du
corps est issu de variable fixe et une partie issue de variable de
temps (donc qui peut varier) , le but etant de supprimer ce fichier
s'il est trouvé .


C'est un peu plus complexe qu'un simple "FileExists" !

Il faut faire appel à une "expression régulière"
http://www.bellamyjc.org/fr/vbsobjets.html#regexp

Exemple
--------

"dossier"
contient le nom complet du dossier que l'on va explorer
"nomgen"
contient le nom du(des) fichier(s) recherché(s) avec
caractères génériques éventuels
p.ex. : rapport??-??-??_??h??m.*


' routine de test d'expression régulière
' -----------------------------------
Function RegExpTest(patrn, strng)
RegExptestúlse
Dim regEx, Match, Matches
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = false
Set Matches = regEx.Execute(strng)
If matches.count>0 Then RegExptest=true
End Function

...
dossier=lcase(args(0))
nomgen=lcase(args(1))
...
' Transformation du nom de fichier avec wildcards éventuels
' en expression régulière.

' Comme les caractères "." ou "$" sont des délimiteurs dans une E.R.,
' il faut donc les faire précéder d'un "" s'ils existent dans le nom
' du fichier.
nomgen=Replace(nomgen,".",".")
nomgen=Replace(nomgen,"$","$")

' Remplacement des caractères génériques (? et *) par leurs
' homologues en E.R.
nomgen=Replace(nomgen,"?",".")
nomgen=Replace(nomgen,"*","[w.]*") & "$"

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set fs=fso.GetFolder(dossier)
Set collfiles=fs.Files
'Exploration des fichiers du dossier
for each file in collfiles
curfile=file.name
If RegExpTest(nomgen,curfile) Then
' Traitement à effectuer sur le fichier
' .......
End If
next


Mes scripts :

MINSIZE.VBS
http://www.bellamyjc.org/fr/vbsdownload.html#minsize
REPLACE.VBS
http://www.bellamyjc.org/fr/vbsdownload.html#replace
SENDMAIL.VBS
http://www.bellamyjc.org/fr/vbsdownload.html#sendmail

font appel à des expressions régulières.

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
merlin01fr

Bonjour,
Je ne voies pas où se trouve le problème car votre code doit fonctionner


bonjour

oui effectivement mon code est bon sauf que c'est un fichier qui est generé
mensuellement , celui du mois si il exist (je sors du script), par contre ce
que je cherche a supprimer c'est celui du mois anterieur et donc je cherche
une methode pour exploiter la commande if fileexists avec des caracteres
generiques .

Cordialement

Avatar
merlin01fr
Bonjour,

Si vous aviez quelques précisions complémentaires.

VerifFichierLog = SousRepDeBaseVerifUser & "" & NomDuParc & " " &
NomDuPoste & " - (" & SessionActive & ") - " & MonExtractionDuMois & " " & year(now) & ".txt"




Mon interrogation se porte sur la variable (MonExtractionDuMois) celle du
mois en cours est facilement identifiable , mais je cherche a exploiter
l'emplacement de cette varaible via des caracteres generiques pour retrouver
par exemple le fichier du mois anterieur , ce qui me permettrais de le
supprimer .

Cordialement


Avatar
Yannick SCHAPPLER
Dans ce cas, comme le suggère Jean-Claude BELLAMY dans son post, il faut
recourir à une expression régulière, pour pouvoir "isoler" la partie
variable liée au mois.

YS


"Yannick SCHAPPLER" a écrit dans le message de
news:
Bonjour,

Votre question porte t-elle sur comment supprimer le fichier ?
ou sur comment composer la variable ???

Votre code semble correct....
Si vous aviez quelques précisions complémentaires.


YS

"merlin01fr" a écrit dans le
message de news:
Bonjour

je cherche a verifier la presence d'un fichier dont une partie du corps
est
issu de variable fixe et une partie issue de variable de temps (donc qui
peut
varier) , le but etant de supprimer ce fichier s'il est trouvé .

Mon code

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Verification de la presence ou non du fichier normalement crée à '
' la fin du script et qui permet de verifier si le releve '
' d'inventaire a ete fait '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

VerifFichierLog = SousRepDeBaseVerifUser & "" & NomDuParc & " " &
NomDuPoste & " - (" & _
SessionActive & ") - " & MonExtractionDuMois & " " & year(now) &
".txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(VerifFichierLog)) Then

Wscript.Quit (1)

End If

Si quelqu'un a une idee je suis preneur

Cordialement






Avatar
merlin01fr
Bonjour

je me doutais un peu du fait que l'operation n'etait pas simple

je vais etudier ca en rentrant ce soir.

Merci pour votre reponse