Aquí es una respuesta, basado en (y creo que una mejora en) la respuesta de Tester101, expresado como una subrutina, con la línea de CopyFile vez en lugar de tres veces, y preparado para manejar el cambio de nombre de archivo que la copia está hecho (no hay un directorio de destino codificado). También encontré que tenía que eliminar el archivo de destino antes de copiar para que funcione, pero eso podría ser algo de Windows 7. Las instrucciones WScript.Echo se deben a que no tenía un depurador y, por supuesto, puedo eliminarlo si lo desea.
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
En qué contexto se está ejecutando este script? – jrcs3
Obtengo una salida en una carpeta, solo necesito copiar esa salida de esa carpeta a otra carpeta donde esta salida se daría como entrada a otro ejecutable. –
¿Está ejecutando esto como un archivo de script .VBS, en IE, etc.? ¿Puedes hacer la misma copia en un archivo de proceso por lotes como el mismo usuario? – jrcs3