1 (изменено: lorents, 2012-01-20 22:31:07)

Тема: JScript: Дата и время изменения файла

Добрый вечер!
У меня есть два файла с разными датами и временем изменения файла. Подскажите, как можно с помощью JScript сделать так, чтобы у файлов были одинаковые даты и время изменения файла. У меня одно просьба, сам код буду запускать через командную строку, по этой причине хотел попросить, чтобы код можно было бы запустить через командную строку следующим образом:

cscript //nologo //E:JScript "script.js" "файл 1" "файл 2"

2

Re: JScript: Дата и время изменения файла

lorents пишет:

<...> как <...> сделать так, чтобы у файлов были одинаковые даты и время изменения файла <...>

Вдумайтесь в саму фразу - время изменения файла. То есть это время, когда файл был изменен!

Файл считается измененным, когда он
- был создан (тогда время его создания и время изменения совпадают),
- был изменен,
- был помещен в текущую файловую систему извне.

( 2 * b ) || ! ( 2 * b )

3

Re: JScript: Дата и время изменения файла

lorents, приведу пример на VBScript (подождите, пока кто-нибудь не переведёт его, либо сделайте перевод на JScript сами):

Option Explicit

Dim objFSO
Dim objFileSource
Dim objFileDest


If WScript.Arguments.Count = 2 Then
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    
    If objFSO.FileExists(WScript.Arguments.Item(0)) Then
        If objFSO.FileExists(WScript.Arguments.Item(1)) Then
            Set objFileSource = objFSO.GetFile(WScript.Arguments.Item(0))
            Set objFileDest   = objFSO.GetFile(WScript.Arguments.Item(1))
            
            DateLastModifiedSet objFileDest.ParentFolder, objFileDest.Name, objFileSource.DateLastModified
            
            Set objFileDest   = Nothing
            Set objFileSource = Nothing
        Else
            WScript.Echo "Can't find destination file [" & WScript.Arguments.Item(1) & "]"
        End If
    Else
        WScript.Echo "Can't find source file [" & WScript.Arguments.Item(0) & "]"
    End If
    
    Set objFSO = Nothing
Else
    WScript.Echo "Usage : " & WScript.ScriptName & " <Source file> <Destination file>"
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Sub DateLastModifiedSet(strFolder, strFolderItem, dtDateTime)
    Dim objShell
    Dim objFolder
    Dim objFolderItem
    
    Set objShell  = WScript.CreateObject("Shell.Application")
    Set objFolder = objShell.NameSpace(CStr(strFolder))
    
    If Not objFolder Is Nothing Then
        Set objFolderItem = objFolder.ParseName(CStr(strFolderItem))
        
        If Not objFolderItem Is Nothing Then
            objFolderItem.ModifyDate = CDate(dtDateTime)
            
            Set objFolderItem = Nothing
        Else
            WScript.Echo "Can't determine folder item [" & strFolderItem & "] in folder [" & strFolder & "]"
        End If
        
        Set objFolder = Nothing
    Else
        WScript.Echo "Can't determine folder [" & strFolder & "]"
    End If
    
    Set objShell = Nothing
End Sub
'=============================================================================

4 (изменено: lorents, 2012-01-21 18:35:20)

Re: JScript: Дата и время изменения файла

Rumata
я имею ввиду как раз атрибут изменения файла

alexii
Спасибо большое! То что надо.