Oto odpowiedź, na podstawie (i myślę, że poprawa na) odpowiedź Tester101, wyrażone jako podprogram, z linią CopyFile raz zamiast trzy razy, i przygotowany do obsługi zmiany nazwy pliku jako kopii jest tworzony (brak zakodowanego katalogu docelowego). Stwierdziłem również, że przed kopiowaniem muszę usunąć plik docelowy, aby to działało, ale może to być sprawa Windows 7. Wyrażenia WScript.Echo wynikają z tego, że nie miałem debuggera i można go oczywiście usunąć w razie potrzeby.
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
Pod jakim kontekście są uruchomione ten skrypt? – jrcs3
Dostaję niektóre dane wyjściowe do jednego folderu, po prostu muszę skopiować te dane wyjściowe z tego folderu do innego folderu, w którym to wyjście zaczęłoby się jako dane wejściowe do innego pliku wykonywalnego. –
Czy uruchamiasz to jako plik skryptu .VBS, w IE itp.? Czy możesz zrobić tę samą kopię w pliku wsadowym uruchomionym jako ten sam użytkownik? – jrcs3