Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Дата и время изменения файла (http://forum.oszone.net/showthread.php?t=225822)

lorents 20-01-2012 23:34 1840804

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

Код:

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

sov44 26-01-2015 22:09 2461825

Столкнулся с проблемой определения даты изменения файла. Есть файл, в свойствах которого написана дата изменения ‎7 ‎сентября ‎2013‎г., ‏‎0:07:01, при выводе свойств файла через командную строку (%~t0 ) в консоль выводит 6.09.2014 23:07, при использовании утилиты filever тоже 6 сентября. Как вывести в переменную дату и время 7.09.2014 ‏‎0:07:01 ?



файл http://rghost.ru/6NWlPzFht

mwz 27-01-2015 00:52 2461879

sov44, какая у вас на компьютере установлена зона времени?

sov44 27-01-2015 06:52 2461932

mwz, (UTC+03:00) Волгоград, Москва, Санкт-Петербург (RTZ 2) Цент обновления работает.

дополнение:
кэш 4190с.msp взят из папки %windir%\Installer. Оригинал файла - в KB2589352 http://rghost.ru/6ZSVn9x7D
проверил на другом компьютере, проблема аналогичная.

sov44 27-01-2015 22:08 2462397

Задачка действительно сложная (не решаемая) ?

Iska 28-01-2015 07:09 2462498

sov44, не проще ли будет предположить, что проблема где-то на уровне Проводника, нежели в filever или cmd.exe? Что кажут сторонние файловые менеджеры по поводу свойств данного файла, например, такие как Far Manager и Total Commander?

sov44 28-01-2015 07:47 2462500

Цитата:

Цитата Iska
sov44, не проще ли будет предположить, что проблема где-то на уровне Проводника, »

Нет. Во первых разные компьютеры показывают один и тот-же баг, во вторых для файлов, созданных (модифицированных) текущей системой это не распространяется. Как вариант, сравните даты файлов по ссылке http://rghost.ru/6NWlPzFht и тот-же файл, вынутый из exe http://rghost.ru/6ZSVn9x7D

Iska 28-01-2015 08:04 2462503

Цитата:

Цитата sov44
Во первых разные компьютеры показывают один и тот-же баг, »

И что? Проверьте на чистой, свежеустановленной ОС с оригинального, ничем не модифицированного диска.

Я Вам просто предлагаю проверить:
Цитата:

Цитата Iska
Что кажут сторонние файловые менеджеры по поводу свойств данного файла, например, такие как Far Manager и Total Commander? »

Далее я предложил бы сравнить показания «Scripting.FileSystemObject», «Shell.Application», System.IO.FileInfo. Не хотите давать информацию, дело Ваше.

Цитата:

Цитата sov44
Как вариант, сравните даты файлов по ссылке http://rghost.ru/6NWlPzFht и тот-же файл, вынутый из exe http://rghost.ru/6ZSVn9x7D »

Ничего, что дата меняется при выгрузке/загрузке?

sov44 28-01-2015 12:19 2462573

Цитата:

Цитата Iska
Ничего, что дата меняется при выгрузке/загрузке? »

см. пост 2

Цитата:

Цитата Iska
Не хотите давать информацию, дело Ваше. »

см. ссылку пост 4
Цитата:

Цитата sov44
проблема аналогичная »



какими ещё сторонними утилитами (кроме filever) можно выделить в переменную дату модификации?

iccup.platoon@vk 28-01-2015 14:32 2462644

Код:

File="jetpack.zip"
filespec="F:\SANDBOX\"&file
set fso=createobject("scripting.filesystemobject")
set f=fso.GetFile(filespec)
MsgBox f.DateLastModified
set f=nothing
set fso=nothing

Данный код выдаст мсг с датой и временем изменения указанного файла

sov44 28-01-2015 15:08 2462671

iccup.platoon@vk, нужно переменной в батнике для дальнейшей обработки.

п.с. файл не победим :)

Iska 28-01-2015 15:43 2462706

sov44, если способ 1, 2, 3 говорит Вам, что дата равна X, а Проводник — что дата равна X +1 час, то какой напрашивается вывод?

sov44 28-01-2015 15:59 2462718

Цитата:

Цитата Iska
если способ 1, 2, 3 говорит Вам, что дата равна X, а Проводник — что дата равна X +1 час, то какой напрашивается вывод? »

вывод - проверит на своём ПК, подтвердить или опровергнуть мой пост ;)

Iska 28-01-2015 16:18 2462729

Цитата:

Цитата sov44
вывод - проверит на своём ПК, подтвердить или опровергнуть мой пост »

Проверил ещё вчера. Проверил ещё раз сегодня на другой машине.

Скрытый текст

sov44 28-01-2015 16:49 2462747

Цитата:

Цитата Iska
Проверил ещё вчера. Проверил ещё раз сегодня на другой машине. »

тогда хз, куда копать. :dont-know

Iska 28-01-2015 17:09 2462760

sov44, посмотрите, вот это не может быть похоже на Ваше поведение: Why do file timestamps compare differently every time change??

sov44 28-01-2015 20:04 2462853

Цитата:

Цитата Iska
вот это не может быть похоже на Ваше поведение: »

Возможно. Не хочется баловаться с форматированием системного раздела.
Изменил часовой пояс на 1 час вперёд, всё стало ОК. Но ведь это в принципе не правильно!!!

Скрытый текст

mwz 29-01-2015 02:12 2462958

sov44, похоже что у вас не стоит обновление http://support.microsoft.com/kb/3013410 , а только более раннее сентябрьское. ;)

Hint.
В зонах времени прописано не только сегодняшнее соответствие временных зон, но и пересчёт относительно GMT за предыдущие годы и периоды тех прошедших лет. Не помню уж по каким причинам, но сентябрьское обновление было промежуточным экспресс-обновлением, и в нём было сразу сказано, что необходимо будет ставить следующее обновление.

sov44 29-01-2015 06:58 2462985

Цитата:

Цитата mwz
похоже что у вас не стоит обновление http://support.microsoft.com/kb/3013410 , а только более раннее »

mwz, в том-то и проблема, что обновление установлено. При повторной установке появляется окно http://savepic.su/4819456.jpg

iccup.platoon@vk 01-02-2015 19:28 2464847

Может, так? =(
BAT
Код:

@echo off
Setlocal EnableDelayedExpansion
start "" "ТУТ ПУТЬ К МОЕМУ ВБС СКРИПТУ"
for /f "usebackq tokens=*" %%a in ("c:\testwritefile.txt") do (echo %%~a)
del /q "c:\testwritefile.txt"

Этот код положит в переменную всё то, что вам нужно.

VBS
Код:

filespec="ТУТ ПУТЬ К ФАЙЛУ, ВРЕМЯ ИЗМЕНЕНИЯ КОТОРОГО НАДО УЗНАТЬ"
set fso=createobject("scripting.filesystemobject")
Set tf = fso.CreateTextFile("c:\testwritefile.txt", True)
set f=fso.GetFile(filespec)
param = f.DateLastModified
tf.Write (param)
set f=nothing
set fso=nothing

А этот - достанет ту самую инфу, запишет ее в файлик для последующей обработки вышеописанным батником.
По традиции: Iska, не бей за такой способ =)
Архив со скриптами - Файл 121746


Время: 04:46.

Время: 04:46.
© OSzone.net 2001-