Войти

Показать полную графическую версию : Изменить даты и время создания файлов


55kadi
10-12-2016, 16:04
Как изменить даты и время создания файлов на текущую дату и время

на диске C в папке FOTO и во вложенных в ней папках

alpap
10-12-2016, 22:46
@echo off
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "now"
exit

утилиту скачать, запустить, принять условия.

55kadi
10-12-2016, 23:19
@echo off
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "now"
exit »

не работает все даты остаються старые

sov44
11-12-2016, 00:20
не работает все даты остаються старые »
должно работать. Скорее всего не верно указаны даты. Как вариант, проверьте с фиксированной датой.
@echo off
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "11-12-2016 23:32:11" "11-12-2016 23:32:12"
exit

Iska
11-12-2016, 00:33
55kadi, а Вы NirCmd (http://www.nirsoft.net/utils/nircmd.html) загрузили, поместили в текущий каталог или в PATH?

Georgio
11-12-2016, 00:50
Код на PowerShell: Get-ChildItem 'C:\FOTO' -Recurse -Force | ? {!$_.PSIsContainer} | % {$_.CreationTime = Date}.

55kadi
11-12-2016, 02:03
55kadi, а Вы NirCmd загрузили, поместили в текущий каталог или в PATH? »

да все сделал но не меняет

alpap
11-12-2016, 03:28
55kadi,
сделайте скриншот этого:

@echo on
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "now"
pause


nircmd.exe положить в папку, где находится bat с этим кодом

отдельно такая команда:

nircmd.exe setfiletime "C:\FOTO\какой-нибудь файл.jpg" "now"

меняет дату создания какого-то случайного файла в папке C:\FOTO?

Iska
11-12-2016, 05:59
55kadi, ещё покажите, как Вы определяете, что даты создания не изменились.

55kadi
11-12-2016, 11:41
да заработало спасибо

а дату изменения тоже можно поменять ?

или как то можно сразу все атрибуты поменять создание изменения ................ ?

Iska
11-12-2016, 22:47
55kadi, можно. И то, и то. Прочтите справку по приведённой подкоманде NirCmd или классу .Net FileInfo Class (System.IO) (https://msdn.microsoft.com/en-us/library/system.io.fileinfo(v=vs.110).aspx).

shustrik86
27-09-2019, 17:19
Цитата alpap:
@echo off
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "now"
exit »
не работает все даты остаються старые »

Потому что
во-первых, не надо писать @echo off ! Для того, чтобы можно было видеть, что вообще происходит!
Во-вторых, в конце написать не EXIT а PAUSE чтобы видеть что же произошло в работе батника
В-третьих, вот правильная строчка:
for /f "delims=" %%a in ('dir/a-d/b/s "C:\FOTO\*.*"') do nircmd.exe setfiletime "%%a" "now" "now"
это описано в справке к нирцмд. Я проверил - с двумя наумами работает!

alpap
27-09-2019, 17:48
это описано в справке к нирцмд »
так читайте внимательно, а не между строк:

Изменяет дату создания/модификации/обращения одного или более файлов.
Первый параметр может быть единственным именем файла или строкой подстановочных знаков.
Параметры дат должны быть определены в следующем формате: "dd-mm-yyyy hh:nn:ss", если параметр даты не определен или Вы определяете пустую строку (""), дата не будет изменена.
Если Вы определите "now" как параметр даты, то будет использоваться текущая дата и время.

т.е. если поставить "now" произойдет изменение на текущие, а если надо оставить то что было то или пусто если этот параметр в конце или "", если где-то посередине.

megaloman
27-09-2019, 17:51
Устанавливаем FAR менеджер (для граждан стран бывшего СССР лицензия бесплатна), выбираем папку,
F9 -> файлы -> атрибуты файлов -> ставите нужное время -> ставите птичку "обрабатывать вложенные папки"
И не надо городить огород.
И вообще, если работаете с CMD-файлами, удобнее FAR нет.

Iska
27-09-2019, 19:26
…do nircmd.exe setfiletime… »
Тогда уж nircmdc.exe.

(для граждан стран бывшего СССР лицензия бесплатна), »
Вторая и третья версии бесплатны для всех: Open Source - Unicode Far - forum.farmanager.com (https://forum.farmanager.com/viewtopic.php?p=27894).




© OSzone.net 2001-2012