g3neuron
Messages postés8Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention 9 août 2007
-
16 juil. 2007 à 11:55
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
28 nov. 2007 à 17:29
Je suis TRES débutant et je veux faire un script qui copie un fichier (c:\Documents and Settings\roll\Bureau\Source\Source.txt) dans c:\Documents and Settings\roll\Bureau\Destination
J'ai écrit ça
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
source = "c:\Documents and Settings\roll\Bureau\Source\Source.txt"
destination = "c:\Documents and Settings\roll\Bureau\Destination\Source.txt"
objFSO.FileCopy source, destination, OverwriteExisting
Et il me répond
ligne 5 caract 1
cet objet ne gère pas cette propriété ou cette ùéthode 'objFSO.FileCopy'
code 800A01B6
Erreur d'exécution Microsoft VBScript
Je précise que je suis sur un PC WinXP en réseau & que je n'ai donc pas forcément tous les droits (c'est peut-être ça qui gêne)
Arguments
* object : Requis. object doit toujours correspondre au nom d'un objet
FileSystemObject.
* source : Requis. Spécification, sous forme d'une chaîne de caractères pouvant
comporter des caractères génériques,
d'un ou plusieurs fichiers à copier.
* destination : Requis. Destination, indiquée sous forme d'une chaîne de caractères, vers
laquelle le ou les fichiers de source doivent être copiés.Les caractères
génériques ne sont pas acceptés.
* overwrite : Facultatif. Valeur booléenne indiquant, le cas échéant, que les fichiers
existants doivent être écrasés.
Si la valeur est True, les fichiers sont
écrasés ; si elle est False, ils ne le sont pas. La valeur par défaut est
True.
Il convient de noter que CopyFile échouera si
destination est en lecture seule, quelle que soit la valeur de
overwrite.
Ce qui implique, éventuellement, d'utiliser:
- On Error Resume Next;
ou
- If Err.Number <> 0 Then
Msgbox "Erreur pour copier le fichier"&vbCrLf& Err.Number &vbCrLf& Err.Source &vbCrLf& Err.Description : Err.Clear
End If
MsgBox FnCopyFile_Demo1(strPath,strPathSauv),vbInformation,"Copie de Fichiers"
MsgBox FnCopyFile_Demo2(strPath,strPathSauv),vbInformation,"Copie de Fichiers"
'=========================================================
Function FnCopyFile_Demo1(PathInfile,PathOutfile)
Dim objFso, objFile, strListe
Set objFso = CreateObject("Scripting.FileSystemObject")
If Not objFso.FolderExists(PathOutfile) Then objFso.CreateFolder(PathOutfile)
For Each objFile in objFso.GetFolder(PathInfile).Files
objFso.CopyFile objFile.Path, PathOutfile & objFile.Name, True
strListe = strListe &vbCrLf& objFile.Path
Next
FnCopyFile_Demo1 = "Demo1: Fichiers copiés" &vbCrLf&vbCrLf& strListe
Set objFso = Nothing
End Function
'=========================================================
Function FnCopyFile_Demo2(PathInfile,PathOutfile)
Dim objFso, objFile
Set objFso = CreateObject("Scripting.FileSystemObject")
If Not objFso.FolderExists(PathOutfile) Then objFso.CreateFolder(PathOutfile)
objFso.CopyFile PathInfile & "*.txt", PathOutfile
FnCopyFile_Demo2 = "Demo2: Fichiers copiés" '&vbCrLf&vbCrLf& strListe
Set objFso = Nothing
End Function
La 2ème fonction acceptant les caractères génériques (Folder et Files),
il n'est donc pas obligatoire d'utiliser une boucle.
Voir ma précédente réponse .