Vbs как получить дату создания файла

Обновлено: 02.07.2024

Есть ли способ получить время создания файла в Windows с большей точностью? Я хочу получить время создания mp4-видео в миллисекундах. Это возможно?

Я записываю некоторые данные датчика на устройстве Android вместе с видео. Я написал журнал датчиков самостоятельно и записал системное время вместе с каждым значением датчика. Для записи видео я использую стандартную активность камеры. После отправки данных на ПК я хочу проанализировать их. Чтобы объединить видео с данными датчика, я должен знать, когда видео началось. Секунды немного грубоваты, поэтому я ищу способ получить более точное время начала видео. Примечание: если вам нужна такая связь между двумя потоками данных, обычно необходимо поместить сигнал регистрации в поток (например, старые вагонки, используемые в фильмах, когда режиссер называет «действие». Хлопок был визуальным сигналом и звуком. cue, позволяя синхронизировать два или более потоков позже). В некоторых ситуациях временная задержка между созданием файла в режиме ядра (и записью временной метки) и пробуждением вашего процесса, чтобы он знал, что у него есть дескриптор файла, может фактически превышать допустимые отклонения для ваших данных. Когда вы копируете свои материалы из Android в другое место, убедитесь, что все инструменты копирования сохраняют точность отметки времени. Обратите внимание, что многие инструменты копирования сделают ctime копию моментом ее копирования. В Windows я бы использовал cygwin / mingw, stat чтобы получить все 3 метки времени. Конечно, это потому, что я обычно использую GNU / Linux.

Разрешение отметки времени

Метка времени создания файла в Windows зависит от файловой системы:

FAT / VFAT имеет максимальное разрешение 2 с

NTFS имеет максимальное разрешение 100 нс

wmic решение

Вы можете использовать, wmic чтобы получить дату создания файла с точностью до микросекунды.

Дата создания 20150329221650.080654+060 - это временная метка в следующем формате:

yyyy Четырехзначный год (от 0000 до 9999).

mm Двузначный месяц (с 01 по 12).

dd Двузначный день месяца (с 01 по 31).

HH Двузначные часы дня с использованием 24-часовых часов (с 00 по 23).

MM Двухзначная минута в часе (от 00 до 59).

SS Двузначное количество секунд в минуте (от 00 до 59).

xxxxxx Шестизначное число микросекунд в секунде (от 000000 до 999999)

s Знак плюс ( + ) или знак минус ( - ) указывает положительное или отрицательное смещение относительно всемирного координированного времени (UTC).

UUU Трехзначное смещение, указывающее количество минут, которое исходный часовой пояс отклоняется от UTC.

стат решение

Вы также можете использовать stat (из установки Cygwin или Mingw ).

вывод dir для сравнения

Дальнейшее чтение

@NateEldredge Спасибо, хорошо заметили. Ответ исправлен. Предупреждение: только потому, что временные метки содержат высокочастотную цифру, такую ​​как цифра 100 наносекунд, не означает, что часы можно использовать в качестве надежного источника времени в диапазоне 100 нс. Это просто говорит о том, что есть много битов контента, который [надеюсь] монотонен и примерно соответствует «реальному» времени. См. Msdn CIM_DATETIME : в вашей записи xxxxxx - шестизначное число микросекунд в секунду (от 000000 до 999999) . Микро- , то есть 10^-6 . Конечно, первый триплет представляет собой mili- ( 10^-3 ): усеченный, а не округленный. Второй извлеченный триплет ничего не представляет сам по себе . Однако некоторые wmi значения даты и времени 000 всегда показывают второй триплет , например wmic OS get LocalDateTime

Он использует VBScript для запроса базы данных CIM WMI и возврата FILETIME структуры, связанной с файлом.

Существуют также инструменты с открытым исходным кодом, которые могут проверять метаданные медиа-файла, такие как EXIFtool, который предназначен для управления метаданными медиа-файлов, созданных цифровыми камерами.

Я нашел способ, как получить это в Matlab:

Вы можете использовать функцию GetFileTime, написанную Яном Саймоном. Если вы не хотите компилировать свои собственные mex-файлы, вы также можете скачать скомпилированные файлы здесь .

Это не так точно, как использование wmic (только мс), но для моей цели это подходит.

Это зависит от файловой системы : FAT имеет разрешение 2 секунды, NTFS теоретически имеет разрешение 100 нс, но фактическое разрешение составляет 10 мс . Тем не менее, прерывания имеют более высокий приоритет, чем дисковый ввод-вывод, и я не уверен, что кэширование записи влияет на отметку времени. Таймеры мультимедиа оптимизированы для точности, поэтому предпочтительнее было бы реализовать синхронизацию.

XYplorer показывает мс

Вы можете использовать существующий инструмент, такой как XYplorer, для просмотра меток времени с высоким разрешением, или , вы можете написать собственное приложение. Используйте метод File.GetCreationTime ; он возвращает структуру DateTime с миллисекундным свойством.

При использовании скрипта в VBS немного подкорректировать придется - например, убрать Dim res As Boolean

Можно и цикл встроить - с проверкой на наличие файлов каждые несколько секунд.

И конвертировать в EXE совсем необязательно - в планировщик задач можно засунуть и выполнение скрипта VBS

Вот одного не понял - создался файл IN
Через минуту другая машина выехала - создался файл OUT
Потом снова машина заехала - снова создался файл IN (хотя он уже есть)
Смысл дальше создавать файлы? Оба файла ведь уже есть в папке.

тут тема вся в том, что я не могу запустить из видеонаблюдения ничего кроме экзешника (там есть возможность по факту срабатывания датчика движения запустить программу) - соответственно я сначала пишу vbs-ный сценарий, а потом его конвертирую прогой vbstoexe в экзешник.

извините, что немного в offtop - но почему бы Вам не воспользовать любым нормальным языком программирования с компилятором ?

Могу завтра Вам написать подобную программу на Delphi (и научить компилировать, если надо).

При использовании скрипта в VBS немного подкорректировать придется - например, убрать Dim res As Boolean

Можно и цикл встроить - с проверкой на наличие файлов каждые несколько секунд.

И конвертировать в EXE совсем необязательно - в планировщик задач можно засунуть и выполнение скрипта VBS

Вот одного не понял - создался файл IN
Через минуту другая машина выехала - создался файл OUT
Потом снова машина заехала - снова создался файл IN (хотя он уже есть)
Смысл дальше создавать файлы? Оба файла ведь уже есть в папке.

Гм. каюсь, сумбурненько объяснил..
Я изначально файлы 1-2-3-4 создаю скриптом, но этот скрипт запускает не винда и ее планировщик. его запускает сама прога (сервер) видеонаблюдения по факту срабатывания одного из программных датчиков движения. а из этого чудо-сервера видеонаблюдения я вообще ничего транслировать не могу во внешние программы((( я даже не могу транслировать событие срабатываня датчика движения в какой-то конкретной камере(((
зато у этой проги есть функция при срабатывании датчика движения - проиграть звук. вот чуток с этим моментом похимичив, я смог не звук играть, а экзешник запускать. (скрипт, батник, цмд-шник пробовал - не запускаеся. тока exe получается. отсюда и нужность конвертить скрипт)

а касаемо вопросов Ваших:
прога, которая номера распознает - на базе 1с 8.2, (точнее движок распознания к нему прикручен) А 1с-ом я как раз уже по наличию IN или OUT безусловно понимаю въезд или выезд произошел. И, как только номерок машины распознался, прежде чем фотку с камеры дёргать, мне надо понять с какой - вот и лезем в папку, проверяем направление и соответственно уже нужную камеру дёргаем. а файлик я уже 1с-ом из папки грохну.

просьба:
а чуть подробнее можно про убрать Dim res As Boolean?
и про цикл - чтобы оно раз в секунду-две проверяло)))

Как получить текущую дату и время с помощью VBS (для Windows. Я не ищу VBScript для ASP/ASPX или веб-страниц).

Как я могу получить дату и время из строки DateTime ? DateTime datefrom = 8/27/2012 12:08:25 AM Я хочу получить только дату в одну переменную и только время (с AM/PM) в другую переменную. Я хочу что-то вроде этого: string date = 8/27/2012 string time = 12:08:25 AM

Возможный Дубликат : Как получить дату/время изменения файла creation & в Python? Я хотел бы получить созданную дату и время папки. Есть ли способ сделать это в python? Спасибо

Вот различная информация о дате и времени, которую вы можете получить в vbscript , работающем под Windows Script Host (WSH):

Чтобы изложить ответ Нуменора, вы можете сделать что-то вроде Format (Now(), " HH:mm:ss") использование этих пользовательских параметров формирования даты и времени

Для всех, кто испытывает искушение понизить этот ответ, Пожалуйста, имейте в виду, что вопрос изначально был помечен тегами VB и vbscript, следовательно, мой ответ, тег VB был отредактирован, оставив только тег vbscript. 32-й принял этот ответ, который, как я понимаю, означал, что он дал ему необходимую информацию.

Для VBScript используйте FormatDateTime, который имеет 5 числовых аргументов, чтобы дать вам один из 5 предопределенных форматов. Это не очень здорово.

Как я могу получить текущую дату и время в angularjs Я попробовал следующее: <b>></b> Но это не работает. Любые предложения будут оценены по достоинству.

Дата создания, которую я хочу изменить через VBS, отображается на вкладке Файл (Excel 2010 или более поздняя версия) в разделе Related Dates . Мой вопрос заключается в том, как изменить внутреннюю дату создания Excel, а не дату создания файла (он же File Properties ). Я могу изменить дату создания.

Существуют также отдельные функции Time() и Date() .

Это старый вопрос, но многие ответы здесь используют VB или VBA. На бирке написано vbscript (именно так я сюда и попал).

Ответы здесь были немного запутанными, так как VB очень широк, где вы можете иметь так много его применений. Мой ответ касается исключительно vbscript и завершает мой случай форматирования в YYYYMMDD в vbscript

Делюсь тем, что узнал:

  1. Здесь определены все функции DateTime в vbscript, так что вы можете mix-n-match получить желаемый результат
  2. Мне нужно было получить текущую дату и отформатировать ее в YYYYMMDD , чтобы сделать это, мне просто нужно было объединить DatePart так для текущей даты: date = DatePart("yyyy",Date) & DatePart("m",Date) & DatePart("d",Date)

Вот и все, надеюсь, это кому-то поможет.

Показывают время в виде 24 часов

now возвращает текущую дату и время

Похожие вопросы:

У меня возникла проблема в VBScript, когда дата (включая сейчас) всегда звонит из Windows системы Date/Time. Как я могу установить дату/время для VBScipt без настройки системной даты/времени в.

Я работаю с одним приложением, где мне нужно отобразить дату и время, когда приложение было закрыто окончательно. Можно ли сохранить и получить дату и время открытия и закрытия приложения iphone? У.

Я в состоянии сделать выбор даты из ionc2 док Может ли кто-нибудь показать мне, как получить дату и время устройства в ionic2

Как я могу получить дату и время из строки DateTime ? DateTime datefrom = 8/27/2012 12:08:25 AM Я хочу получить только дату в одну переменную и только время (с AM/PM) в другую переменную. Я хочу.

Возможный Дубликат : Как получить дату/время изменения файла creation & в Python? Я хотел бы получить созданную дату и время папки. Есть ли способ сделать это в python? Спасибо

Как я могу получить текущую дату и время в angularjs Я попробовал следующее: <b>></b> Но это не работает. Любые предложения будут оценены по достоинству.

Дата создания, которую я хочу изменить через VBS, отображается на вкладке Файл (Excel 2010 или более поздняя версия) в разделе Related Dates . Мой вопрос заключается в том, как изменить внутреннюю.

Я пытаюсь получить сегодняшнее и вчерашнее время, используя модуль Python time . Это для меня работает на сегодняшнюю дату: dt = time.strptime(time.strftime(%d/%m/%Y),'%d/%m/%Y') Но я не знаю, как.

Если какой-либо пользователь меняет дату и время на своем устройстве, то как получить текущую дату и время, которые на самом деле работают. Я работаю над проектом, который использует текущую дату в.

Сценарии WSH позволяют получить полный доступ к файловой системе компьютера, в отличие от JScript- или VBScript-сценариев, внедренных в HTML-страницы, где в зависимости от уровня безопасности, который устанавливается в настройках браузера, те или иные операции могут быть запрещены.

Объекты для основных операций с файловой системой

Для работы с файловой системой из сценариев WSH предназначены восемь объектов, главным из которых является FileSystemObject . С помощью методов объекта FileSystemObject можно выполнять следующие основные действия:

  • копировать или перемещать файлы и каталоги;
  • удалять файлы и каталоги;
  • создавать каталоги;
  • создавать или открывать текстовые файлы;
  • создавать объекты Drive , Folder и File для доступа к конкретному диску, каталогу или файлу соответственно.

С помощью свойств объектов Drive , Folder и File можно получить детальную информацию о тех элементах файловой системы, с которыми они ассоциированы. Объекты Folder и File также предоставляют методы для манипулирования файлами и каталогами (создание, удаление, копирование, перемещение); эти методы в основном копируют соответствующие методы объекта FileSystemObject .

Кроме этого имеются три объекта-коллекции: Drives , Folders и Files . Коллекция Drives содержит объекты Drive для всех имеющихся в системе дисков, Folders — объекты Folder для всех подкаталогов заданного каталога, Files — объекты File для всех файлов, находящихся внутри определенного каталога.

Наконец, из сценария можно читать информацию из текстовых файлов и записывать в них данные. Методы для этого предоставляет объект TextStream .

В табл. 6.1 кратко описано, какие именно объекты, свойства и методы могут понадобиться для выполнения наиболее часто используемых файловых операций.

Примеры сценариев

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

Получение сведений о диске

Доступ к свойствам заданного локального или сетевого диска можно получить с помощью объекта Drive , который возвращается методом GetDrive объекта FileSystemObject , а также может быть получен как элемент коллекции Drives .

В листинге 6.1 приведен сценарий DriveInfo.vbs, который выводит на экран некоторые свойства диска С.

Получение сведений о каталоге

Доступ к свойствам каталога обеспечивает объект Folder . Создать этот объект можно с помощью свойства RootFolder объекта Drive или методов GetFolder , GetParentFolder и GetSpecialFolder объекта FileSystemObject . Также объекты Folder могут быть получены как элементы коллекции Folders .

В сценарии FolderInfo.vbs на экран выводятся свойства каталога, из которого был запущен сценарий (листинги 6.2).

Получение сведений о файле

Доступ ко всем свойствам файла обеспечивает объект File , создать который можно с помощью коллекции Files или метода GetFile объекта FileSystemObject .

В листинге 6.3 приведен сценарий FileInfo.vbs, в котором на экран выводятся некоторые свойства файла C:\boot.ini.

Проверка существования диска, каталога или файла

Для проверки существования диска, каталога и файла используются соответственно методы DriveExists , FolderExists и FileExists . В листинге 6.4 приведен сценарий IsExistsFile.vbs, в котором проверяется наличие на диске C файла boot.ini.

Получение списка всех имеющихся дисков

Каждому из дисков компьютера (включая подключенные сетевые диски и дисководы со сменными носителями) соответствует элемент коллекции Drives (объект Drive ). Таким образом, для построения списка дисков компьютера нужно в цикле перебрать все элементы коллекции Drives .

В листинге 6.5 приведен сценарий ListDrives.vbs, в котором на экран выводятся сведения обо всех доступных дисках.

Листинг 6.5. Построение списка всех имеющихся дисков (VBScript)
Получение списка всех подкаталогов заданного каталога

Для построения списка всех подкаталогов определенного каталога можно воспользоваться коллекцией Folders , которая хранится в свойстве SubFolders соответствующего объекта Folder и содержит объекты Folder для всех подкаталогов.

Читайте также: