Quelqu'un peut-il me dire comment copier un fichier d'un dossier à un autre à l'aide de vbscripting J'ai essayé ceci ci-dessous à partir des informations fournies sur Internet.
dim filesys
set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists("c:\sourcefolder\anyfile.txt") Then
filesys.CopyFile "c:\sourcefolder\anyfile.txt", "c:\destfolder\"
Lorsque j'exécute celui-ci, j'obtiens que l'autorisation est refusée.
Essaye ça. Il vérifiera si le fichier existe déjà dans le dossier de destination et s'il le fera, vérifiera si le fichier est en lecture seule. Si le fichier est en lecture seule, il le changera en lecture-écriture, remplacera le fichier et le rendra en lecture seule à nouveau.
Const DestinationFile = "c:\destfolder\anyfile.txt"
Const SourceFile = "c:\sourcefolder\anyfile.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
'Check to see if the file already exists in the destination folder
If fso.FileExists(DestinationFile) Then
'Check to see if the file is read-only
If Not fso.GetFile(DestinationFile).Attributes And 1 Then
'The file exists and is not read-only. Safe to replace the file.
fso.CopyFile SourceFile, "C:\destfolder\", True
Else
'The file exists and is read-only.
'Remove the read-only attribute
fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1
'Replace the file
fso.CopyFile SourceFile, "C:\destfolder\", True
'Reapply the read-only attribute
fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1
End If
Else
'The file does not exist in the destination folder. Safe to copy file to this folder.
fso.CopyFile SourceFile, "C:\destfolder\", True
End If
Set fso = Nothing
Voici une réponse, basée sur (et je pense une amélioration par rapport à) la réponse de Tester101, exprimée comme un sous-programme, avec la ligne CopyFile une fois au lieu de trois, et préparée à gérer le changement de nom de fichier au fur et à mesure de la copie (pas de code dur répertoire de destination). J'ai également constaté que je devais supprimer le fichier cible avant de le copier pour que cela fonctionne, mais cela pourrait être une chose Windows 7. Les instructions WScript.Echo sont parce que je n'avais pas de débogueur et peuvent bien sûr être supprimées si vous le souhaitez.
Sub CopyFile(SourceFile, DestinationFile)
Set fso = CreateObject("Scripting.FileSystemObject")
'Check to see if the file already exists in the destination folder
Dim wasReadOnly
wasReadOnly = False
If fso.FileExists(DestinationFile) Then
'Check to see if the file is read-only
If fso.GetFile(DestinationFile).Attributes And 1 Then
'The file exists and is read-only.
WScript.Echo "Removing the read-only attribute"
'Remove the read-only attribute
fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes - 1
wasReadOnly = True
End If
WScript.Echo "Deleting the file"
fso.DeleteFile DestinationFile, True
End If
'Copy the file
WScript.Echo "Copying " & SourceFile & " to " & DestinationFile
fso.CopyFile SourceFile, DestinationFile, True
If wasReadOnly Then
'Reapply the read-only attribute
fso.GetFile(DestinationFile).Attributes = fso.GetFile(DestinationFile).Attributes + 1
End If
Set fso = Nothing
End Sub
Pour copier le fichier unique, voici le code:
Function CopyFiles(FiletoCopy,DestinationFolder)
Dim fso
Dim Filepath,WarFileLocation
Set fso = CreateObject("Scripting.FileSystemObject")
If Right(DestinationFolder,1) <>"\"Then
DestinationFolder=DestinationFolder&"\"
End If
fso.CopyFile FiletoCopy,DestinationFolder,True
FiletoCopy = Split(FiletoCopy,"\")
End Function
Je viens de publier mon code terminé pour un projet similaire. Il copie des fichiers de certaines extensions dans mon code, son pdf tif et tiff vous pouvez les changer en ce que vous voulez copier ou supprimer les instructions if si vous n'avez besoin que de 1 ou 2 types. Lorsqu'un fichier est créé ou modifié, il obtient l'attribut archive. Ce code recherche également cet attribut et le copie uniquement s'il existe, puis le supprime après sa copie afin de ne pas copier les fichiers inutiles. Il a également une configuration de journal afin que vous puissiez voir un journal de l'heure et du jour où tout a été transféré depuis la dernière exécution du script. J'espère que ça aide! le lien est Erreur: Objet requis; Code 'objDIR': 800A01A8