[Debutant] Script en erreur

Résolu
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011 - 22 nov. 2011 à 10:36
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011 - 23 nov. 2011 à 12:29
bonjour à tous,
j'ai un souci sur un script tout simple mais qui ne fonctionne pas. J'utilise ce script avec un ETL pour tester la présence de fichiers sur un répertoire distant.

Sub Start
Set Fso = CreateObject("Scripting.FileSystemObject")
If
Fso.FileExists("\\serveur\respdistant\*.TXT")
then
Rien à faire
else
envoi de mail
End If

end Sub

Merci de votre aide

12 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 nov. 2011 à 10:10
Bon.
J'ignore tout-à-fait quel langage utilise ton "Data Exchanger".
Je n'ai par ailleurs même pas à ma disposition VBS (que j'ai banni de ma machine pour raisons personnelles, dont de sécurité) et t'ai jusqu'à présent répondu de mémoire.
Tu me dit maintenant que tu ne veux plus filtrer par extension, mais par une partie du nom.

C'est dans ce cas la fonction Instr de VBS qu'il te faut utiliser (car VBS ne connaît pas l'opérateur Like)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 10:41
Bonjour,

FsO.FileExists vérifie l'existence d'UN fichier. Et ne saurait donc accepter de caractères génériques ("jokers") dans le chemin passé en paramètre.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
22 nov. 2011 à 10:43
Merci pour votre réponse.
Quelle est la solution alors ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 10:51
La solution est alors de passer en revue tous les fichiers du dossier, d'en extraire leur nom et de ne retenir que ceux dont l'extension correspond, pardi.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

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

Posez votre question
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
22 nov. 2011 à 11:10
merci encore ...
Abuserai je en vous demandant le code ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 11:19
Abuserai je en vous demandant le code ?

Ce ne serait pas exactement "abuser", mais presque (et ce ne serait pas te rendre service du tout)
Je vais donc ici "couper la poire en deux" et te laisser faire un petit minimum, quand même

Dim dossier,Dim oFSO,fic
Set oFSO = CreateObject("Scripting.FileSystemObject")

dossier = "C:\toto\titi\tata"
If oFSO.FolderExists(dossier) Then
 For each fic in  oFSO.GetFolder(dossier).Files
   'Wscript.Echo fic.Name
' et c'est là que tu vas travailler un peu, hein, plutôt que de te contenter de copier
' tu vas devoir écrire que si l'extension de fic est ".trxt", alors ....

 Next
End If

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
22 nov. 2011 à 11:21
Merci beaucoup, je vais me débrouiller ...
0
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
22 nov. 2011 à 16:35
Bon ben ça ne marche pas ... je me bat avec depuis ce matin ! :( :( :(
Voici mon code :

Dim dossier
Dim oFSO,fic
Set oFSO = CreateObject("Scripting.FileSystemObject")
dossier = "C:\EnAttente"
Ad = 0
If oFSO.FolderExists(dossier) Then
For each fic in oFSO.GetFolder(dossier).Files
If fic.Name Like "?Send?" then
Ad = Ad + 1
End if
Next
End if

Je veux ensuite tester la valeur Ad ... mais j'ai un message d'erreur à l'execution ...

Syntax error
>>If
>> ^^ error is here
Le if est celui qui teste la valeur de Ad

HELPPPPPPPPPPP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 16:50
Je ne comprend plus ce que tu fais
Tu disais vouloir les fichiers avec extension .txt
Que vient alors faire ici ce Like "?Send?" ?

regarde ce que fait ceci et sers-t'en :
 Dim dossier
  Dim oFSO, fic
  Set oFSO = CreateObject("Scripting.FileSystemObject")
  dossier = "D:\blabla\blabla"
  Ad = 0
  If oFSO.FolderExists(dossier) Then
  For Each fic In oFSO.GetFolder(dossier).Files
    MsgBox oFSO.GetExtensionName(fic)
  Next


Il es par ailleurs clair que dossier ne doit pas être un dossier protégé, hein

Regarde enfin comment je présente mes bouts de code sur ce forum : indentés et entre balises code. Fais-en autant, s'il te plait (c'est important).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 17:00
Et par ailleurs :
Sous quoi développes-tu finalement ?
Car l'opérateur Like n'est pas reconnu sous VBS (la présente section).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
23 nov. 2011 à 09:47
bonjour,
Je développe sur Data Exchanger et j'inclus un objet VBScript.
Je dois en fait tester la présence de fichiers dans un répertoire. Les fichiers ont tous en commun un identifiant ("Send"). Au départ, je pensais que l'extension suffisait mais en fin de compte, ce n'est pas assez discriminant.
Et désolé pour la présentation du code mais je fais un simple copier coller de mon éditeur et c'est très basique.
Merci
0
cs_BenMarcel Messages postés 9 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 23 novembre 2011
23 nov. 2011 à 12:29
merci beaucoup, j'ai enfin réussi !!!
0
Rejoignez-nous