Скрипт обновления файла с проверкой по дате изменения.
Помогите начинающему. Нужен скрипт, который бы:
1. Сравнивал дату изменения 2-ух одинаковых файлов
2. Если файл из директории 2 старше или не существует, заменить его на файл из директории 1
Заранее спасибо.
|
CtrlD,
Код:
Option Explicit
On Error resume next
Dim objRootFile, objDestFile, objNoneFile
Dim objRootFSO, objDestFSO, objNoneFSO
Dim strPathRootFolder, strPathDestFolder
Dim strNameDest, strNameroot, strDateroot, strDateDest
Dim intErrLevel
strPathRootFolder = "F:\renew_oldFiles\1" ' Контролируемая директория
strPathDestFolder = "F:\renew_oldFiles\2" ' Директория с self-файлами
intErrLevel = 0
Set objRootFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objDestFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objNoneFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objRootFSO.FolderExists(strPathRootFolder) Then
If objRootFSO.FolderExists(strPathDestFolder) Then
For Each objRootFile In objRootFSO.GetFolder(strPathRootFolder).Files
strNameroot = objRootFSO.GetFileName(objRootFile)
strDateroot = DateDiff("D", objRootFile.DateLastModified, Now)
For Each objDestFile In objDestFSO.GetFolder(strPathDestFolder).Files
strNameDest = objDestFSO.GetFileName(objDestFile)
strDateDest = DateDiff("D", objDestFile.DateLastModified, Now)
IF strNameDest = strNameroot And _
strDateroot > strDateDest Then
objDestFile.Copy strPathRootFolder & "\", True
'WScript.Echo "File [" & strNameDest & "] was remove."
End If
Set objNoneFile = objNoneFSO.GetFile(strPathRootFolder&"\"&strNameDest)
If Not objNoneFSO.FileExists(objNoneFile) Then
objDestFile.Copy strPathRootFolder & "\", True
'WScript.Echo "File [" & strNameDest & "] was created."
End If
Next
Next
Else
WScript.Echo "Folder [" & strPathRootFolder & "] is not exists."
intErrLevel = 1
End If
Else
WScript.Echo "Folder [" & strPathDestFolder & "] is not exists."
intErrLevel = 2
End If
Set objRootFSO = Nothing
Set objDestFSO = Nothing
Set objNoneFSO = Nothing
WScript.Echo "Script done"
WScript.Quit intErrLevel
Строки, выделеные жирным курсивом - необязательны, нужны только для контроля
при проверке работы скрипта.
PS: Для начинающего: Объекты Windows Script Host
|
El Sanchez |
17-07-2010 10:45 1454889 |
Цитата:
Цитата CtrlD
2. Если файл из директории 2 старше или не существует, заменить его на файл из директории 1 »
|
Для начинающего лучше всего с CMD начинать:
Код:
@Echo Off
Set Source="C:\Source\file.txt"
Set OutputDir="C:\Output"
XCopy %Source% %OutputDir% /YDFHR
|
Время: 08:38.
© OSzone.net 2001-