B3nJ
Messages postés3Date d'inscriptionsamedi 21 avril 2007StatutMembreDernière intervention24 avril 2007
-
24 avril 2007 à 09:29
B3nJ
Messages postés3Date d'inscriptionsamedi 21 avril 2007StatutMembreDernière intervention24 avril 2007
-
24 avril 2007 à 10:08
Bonjour,
je suis totalement débutant en vbs, et je cherchais une solution rapide, même si non optimisée, pour renomer des fichiers.
J'ai donc, à l'aide de ce site, créé le petit script suivant:
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.GetFile("C:\PRNSSBTB.txt")
MonFic.Copy "C:\CF1-CF1.txt", True
MonFic.delete
Comme vous le voyez, le but est de trouver un fichier texte à la racine, le copier sous un nouveau nom, et supprimer le premier. Jusque là tout va bien, à ceci près que je ne connais pas le nom exact de mon fichier. Il s'appelle "PRNSSBTB_[partie variable].txt" et la commande "GetFile("C:\PRNSSBTB_*.txt")" ne semble pas fonctionner.
Merci d'avance pour votre aide
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 avril 2007 à 10:00
Re,
Essaies ceci:
Dim FSys, MonFic, TonRepertoire
Set FSys = CreateObject("Scripting.FileSystemObject")
TonRepertoire = "C:\Test"
For Each MonFic In FSys.GetFolder(TonRepertoire).Files
If InStr(1, MonFic.Name, "PRNSSBTB") Then MonFic.Name = "CF1-CF1.txt"
If InStr(1, MonFic.Name, "PRNSSBTA") Then MonFic.Name = "CR1-CR1.txt"
Next , ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 avril 2007 à 09:40
Salut,
>[auteurdetail.aspx?ID=17710 Exploreur] : Pas de Name ToTo.txt AS Tata.Txt en VBS
En ravanche La propriété Name de l'objet File est en écriture Donc tu peux faire directement
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.GetFile("C:\PRNSSBTB.txt")
MonFic.Name = "CF1-CF1.txt"
Ce que je ne comprends pas c'est ta deuxieme partie de question (partie fixe)
si j'ai bien compris tu as plusieur fichiers tu type PRNSSBTB_
Comment veux tu les renommer?
@+: Ju£i?n Pensez: Réponse acceptée
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 avril 2007 à 09:41
Re,
>[auteurdetail.aspx?ID=17710 Exploreur] Crois moi si tu veux mais ton dernier post n'était pas encore là (on a fait le même exemple.... )
les grands esprits se rencontre (ou ceux en manquent d'inspiration pour les exemples )
@+: Ju£i?n Pensez: Réponse acceptée
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 24 avril 2007 à 09:49
Re,
Il travaille en VBScript et en VBScript tu ne peux pas utiliser Name .. AS ...
Mais au vu de ce qu'il a déjà fait il peut utiliser la propriété Name De L'objet File
=> plus clair ou pas?
B3nJ
Messages postés3Date d'inscriptionsamedi 21 avril 2007StatutMembreDernière intervention24 avril 2007 24 avril 2007 à 09:54
Tout d'abord, merci pour la rapidité de vos réponses
En fait, tous les mois sont générés automatiquement des fichiers, et ils sont placés dans un répertoire précis. Le nom de ces fichiers est variable, mais il y aura toujours un "PRNSSBTB_[quelquechose].txt".
Le fichier qui commence par "PRNSSBTB" doit être renomé en CF1-CF1.txt, et je sais qu'il n'y en aura qu'un seul.
Il y aura également un et un seul "PRNSSBTA_[quelquechose].txt" qu'il faudra que je renome en CR1-CR1.txt mais ça reviendra à copier la partie précédente du code en changeant juste le nom.
Le problème est donc que je connais le début du nom de chacun de ces fichiers générés, mais pas la partie [quelquechose] qui peut ressembler à n'importe quoi.
Il faudrait donc que ce scrit soit capable de renomer un "PRNSSBTB_D0300530.txt" en "CF1-CF1.txt" sans connaître la partie "D0300530" du nom, qui sera différente le mois prochain