Copier un fichier mais garder sa trace VBS
Bonjour, j'ai un problème avec mon code.
Il y a beaucoup de texte mais c'est pour être plus précis
Je vous explique ce qu'il doit faire :
Je dois copier des fichiers dans un dossier temp
je vérifie que le fichier a bien été copié
je supprimer le fichier à la source
Je dois copier les fichiers du genre 111(123 f5) donc *(??? f?).*
- titre différent, extention différente mais toujours 3 chiffres à l'intérieur
des parathèses avec un espace et un "f" suivi d'un autre chiffre
Je dois vérifier dans plein de répertoire donc je fais une fonction récursive
La copie se fait bien, mais je n'ai pas de "controle" sur le fichier qui est copié
J'aimerais pouvoir connaitre le chemin du dossier avant la copie (voir ICI) et apres la copie ( voir ICI ),
avant pour que je puisse l'effacer à la source et apres pour que je puisse vérifier si
il a été copié.
Voici le résultat à l'écran, c'est justement le *(??? f?).* exemple: 222(dwv f1).doc que j'aimerais voir après le dernier \
C:\testv\dossiertest\
C:\testv\dossiertest\toto\
C:\testv\dossiertest\toto\titi\
C:\testv\dossiertest\toto\temp\
C:\testv\dossiertest\toto\temp\jdh220\
Voici mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Set FSO = CreateObject("Scripting.FileSystemObject") 'construction de mon objetShowSubfolders FSO.GetFolder(fichierActuel) '"fichier actuel" pointe sur un fichier ini ou il est écrit c:testf\ Sub ShowSubFolders(Folder) ' Fonction récursive
For Each Subfolder in Folder.SubFolders
Wscript.Echo Subfolder.Path ' Écriture de vérification dans la fenetre dos -- enlever par la suite
Set fichierAVANTcopie = ICI
FSO.CopyFile SubFolder & "\*(??? f?).*" , "c:\dossiertemp" ' copie du fichier - pas de problème
Set fichierAPREScopie = ICI
nFile = fichierAPREScopie ' Vérifier si le fichier à été copié
if FSO.FileExists(nFile) then
FSO.DeleteFile(fichierAVANTcopie) ' supprime le fichier à la source
FLogC.WriteLine "le fichier " & nfile & " a été copié et supprimé de la source" ' si le fichier existe
else
' si le fichier n'existe pas
FLogNC.WriteLine "le fichier " & nfile & " n'a pas été copié"
end if
ShowSubFolders Subfolder ' rappel de la fonction ( "récursivité" )
Next
End Sub |
j'espère que c'est clair, je me doute que c'est une commande genre getfile ou getfolder
Merci beaucoup
Garder la trace d'un fichier ( question reformulé )
Bonjour, pour ceux qui ont vue ma dernière question, il y avait trop de blabla
la simple chose que je veux faire, c'est copier du type \*(??? f?).* ex: 1542(hgh v4).doc un fichier d'un dossierA à un dossierB et vérifier s'il a bien été copier ( s'il existe). Mais j'aimerais garder sa trace ICI et ICI pour pouvoir le supprimer de la source ( dossierA ).
Ligne de commande qui copie, elle fonctionne mais c'est comme si je copiais les yeux fermé.
Dans une fonction récursive :
set fichieravant = FSO.GetFile ??????????????? <- ICI
si je fais ex. set fichieravant = FSO.GetFile(subfoler & "\*(??? f?).*)
il me dit que mon fichier n'est pas trouvé.
FSO.CopyFile subfolder & "\*(??? f?).*", dossiertemp
set fichierapres = FSO.GetFile ??????????????? <- et ICI
pour ensuite pouvoir faire :
FSO.DeleteFile(fichieravant)
Merci beaucoup