Я пытаюсь получить дату последнего изменения группы файлов в Windows. В системах GNU я могу просто использовать что-то вроде stat -c %Y
.
Я знаю о wmic
команде, но проблема в том, что она очень медленная. В моей системе выполнение команды wmic datafile where Name="..." get LastModified /value
примерно в 4-7 раз медленнее, чем при использовании порта GNU stat в оболочке MSYS2.
Для моих целей мне нужна альтернатива, более быстрая и встроенная либо в самой Windows, либо в средствах разработки Visual Studio. Меня не волнует формат вывода, потому что я могу сам разобрать его вручную.
Кто-нибудь знает, существует ли что-то подобное?
windows
filesystems
date-modified
AlexRamallo
источник
источник
stat
(поиск"stat.exe"
). Если нет, то это всего лишь несколько строк C для записи.stat()
илиlstat()
, в зависимости от того, как вы хотите обрабатывать символические ссылки). Или, возможно, это просто в PowerShell, но я никогда не использовал это более, чем минимально.stat
. Вы можете вызвать его с помощьюbash -c
, хотя вам нужно будет использовать Linux, а не имя файла Windows.Ответы:
Окно командной строки DIR должно выполнить эту работу, если вы можете проанализировать вывод по полю. Передайте вывод в файл по мере необходимости.
Например, dir / o: d / t: w упорядочивает файлы по дате [/ o: d], используя последнее записанное, т.е. измененное) поле [/ t: w] и производит следующее:
Если вам нужно время для второго , попробуйте:
Введите dir /? чтобы увидеть варианты просмотра файлов определенных атрибутов, выходного формата и т. д.
источник
@...
вариантах вForFiles
. Жаль, что вам нужно запланировать новую копию, чтобыcmd
просто сделать эхо. В Linuxecho
и некоторых других внутренних командах также есть внешние двоичные файлы, чтобы избежать этого, но я не знаю стандартной команды Windows, которая будет делать эквивалент.