Необходима вычислить дату изменен файла в формате (файл изменен N дней назад).
Нашел здесь, но там как-то мудрено, и она не совсем рабочая.
Код: Выделить всё
forfiles /m file.name /c "cmd /c echo @fdate"Код: Выделить всё
for /f %i in ('dir /o:d /tc file.name ^| findstr file.name') do echo %iКод: Выделить всё
dir file.name | Select Fullname,CreationTime,LastWriteTime,
@{Name="age creation";Expression={[int]((Get-Date)-$_.CreationTime).TotalDays}},
@{Name="age changes";Expression={[int]((Get-Date)-$_.LastWriteTime).TotalDays}}Код: Выделить всё
Set Args = WScript.Arguments
If Args.Count = 0 Then
MsgBox "Имя файла не задано"
Else
FName = CStr(Args(0))
Set FSO = CreateObject("Scripting.FileSystemObject")
Set InFile = FSO.GetFile(FName)
iDate = DateDiff("d", InFile.DateLastModified, Now, 2, 1)
MsgBox "Файл" + vbCrLf + FName + vbCrLf + "изменён " + CStr(iDate) + " дней тому назад"
End IfКод: Выделить всё
@Echo Off
cls
Set "FName=Z:\Box_In\Диск здоровья Грация с магнитами - мини фитнес тренажер для талии - Интернет-магазин - Городской Центр Тренажеров.mht"
Set "VBS=%TEMP%\%~nx0.vbs"
>"%VBS%" Echo Set Args = WScript.Arguments
>>"%VBS%" Echo FName = CStr(Args(0))
>>"%VBS%" Echo Set FSO = CreateObject("Scripting.FileSystemObject")
>>"%VBS%" Echo Set InFile = FSO.GetFile(FName)
>>"%VBS%" Echo iDate = DateDiff("d", InFile.DateLastModified, Now, 2, 1)
>>"%VBS%" Echo WScript.Echo iDate
Set "iDate=False"
FOR /F "usebackq" %%i IN (`cscript //Nologo "%VBS%" "%FName%" 2^>nul`) DO Set iDate=%%i
Del "%VBS%"
If Not "%iDate%"=="False" (
Echo Файл %FName%
Echo изменён %iDate% дней тому назад
) Else (
Echo Файл %FName% не найден
)
pauseКод: Выделить всё
<?xml : version="1.0" encoding="windows-1251"?> ^<!-- :
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3*" %%i in (
'dir /a-d /tw ^| findstr /brc:"[0-9]"'
) do (
set "tm=%%i %%j"
cscript /nologo "%~f0?.wsf" "!tm!" "%%l"
)
endlocal
exit /b
-->
<package>
<job id="VBS">
<script language="VBScript"><![CDATA[
WScript.Echo "Файл " & WScript.Arguments(1) & _
" изменен " & _
DateDiff("d", CDate(WScript.Arguments(0)), Date) & _
" назад"
]]></script>
</job>
</package>