Dưới đây là một câu trả lời, dựa trên (và tôi nghĩ rằng một sự cải tiến trên) Tester101 của câu trả lời, thể hiện dưới dạng một chương trình con, với dòng CopyFile một lần thay vì ba lần, và chuẩn bị sẵn sàng để xử lý thay đổi tên tập tin như bản sao được tạo (không có thư mục đích được mã hóa cứng). Tôi cũng tìm thấy tôi đã phải xóa các tập tin mục tiêu trước khi sao chép để có được điều này để làm việc, nhưng đó có thể là một điều Windows 7. Các câu lệnh WScript.Echo là bởi vì tôi không có một trình gỡ lỗi và dĩ nhiên có thể được gỡ bỏ nếu muốn.
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
Nguồn
2013-09-26 22:14:13
Dưới bối cảnh những gì bạn đang chạy kịch bản này? – jrcs3
Tôi nhận được một số đầu ra vào một thư mục, tôi chỉ cần sao chép đầu ra đó từ thư mục đó vào thư mục khác, nơi đầu ra này sẽ sinh ra làm đầu vào cho một tệp thực thi khác. –
Bạn có chạy tệp này dưới dạng tệp tập lệnh .VBS, trong IE, v.v. không? Bạn có thể làm cùng một bản sao trong một tập tin thực thi chạy với cùng một người dùng không? – jrcs3