Вот ответ, основанный на (и я думаю, улучшении) ответе Tester101, выраженном в виде подпрограммы, с строкой CopyFile один раз вместо трех и подготовленной для обработки изменения имени файла по мере создания копии (нет жестко закодированный каталог назначения). Я также обнаружил, что должен был удалить целевой файл перед копированием, чтобы заставить это работать, но это может быть Windows 7. Операторы WScript.Echo вызваны тем, что у меня не было отладчика, и, конечно, при желании его можно удалить.
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