Войти

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


timasadovykh@vk
30-01-2021, 00:24
Доброго вечера товарищи!

Хотел бы реализовать одну штучку
Имеется база файлов txt, допустим 2000.
Нужно присвоить дату и время , допустим "05.02.2021 20:20".
И самое главное, нужно после каждого третьего файла изменять дату создания увеличив ее на 5 мин

file1.txt "05.02.2021 20:20"
file2.txt "05.02.2021 20:20"
file3.txt "05.02.2021 20:20"
---------------------------------
file4.txt "05.02.2021 20:25"
file5.txt "05.02.2021 20:25"
file6.txt "05.02.2021 20:25"
---------------------------------
file7.txt "05.02.2021 20:30"
file8.txt "05.02.2021 20:30"
file9.txt "05.02.2021 20:30"
---------------------------------
и тд

Iska
30-01-2021, 01:03
Имеется база файлов txt, »
В чём имеется? В текстовом файле? Выложите его образец.

DJ Mogarych
30-01-2021, 09:27
Powershell:

[datetime]$initTime = "05.02.2021 20:20"
$files = dir "C:\temp\creationtime\*.txt" |sort {[int]($_.basename -replace '\D')}
$c = 1

foreach ($file in $files) {
$file.CreationTime = "$initTime"
$c++
if ($c -gt 3) {
$initTime = $initTime.AddMinutes(5)
$c = 1
}
}



$files |select Name,CreationTime

Name CreationTime
---- ------------
file1.txt 02.05.2021 20:20:00
file2.txt 02.05.2021 20:20:00
file3.txt 02.05.2021 20:20:00
file4.txt 02.05.2021 20:25:00
file5.txt 02.05.2021 20:25:00
file6.txt 02.05.2021 20:25:00
file7.txt 02.05.2021 20:30:00
file8.txt 02.05.2021 20:30:00
file9.txt 02.05.2021 20:30:00
file10.txt 02.05.2021 20:35:00
file11.txt 02.05.2021 20:35:00
file12.txt 02.05.2021 20:35:00
file13.txt 02.05.2021 20:40:00
file14.txt 02.05.2021 20:40:00
file15.txt 02.05.2021 20:40:00
file16.txt 02.05.2021 20:45:00

timasadovykh@vk
30-01-2021, 12:58
sort : Не удается преобразовать значение "9780597552" в тип "System.Int32". Ошибка: "Значение было недопустимо малым
или недопустимо большим для Int32."
C:\Users\Tima\Desktop\tett\123123.ps1:2 знак:45
+ ... C:\temp\creationtime\*.call" |sort {[int]($_.basename -replace '\D')}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (C:\temp\creationtime\9780597552.call:PSObject) [Sort-Object], RuntimeE
xception
+ FullyQualifiedErrorId : ExpressionEvaluation,Microsoft.PowerShell.Commands.SortObjectCommand

Но изменил

Name CreationTime
---- ------------
9103837192.call 02.05.2021 20:20:00
9780198817.call 02.05.2021 20:20:00
9780211925.call 02.05.2021 20:20:00
9780218107.call 02.05.2021 20:25:00
9780247148.call 02.05.2021 20:25:00
9780260274.call 02.05.2021 20:25:00



Спасибо)

DJ Mogarych
30-01-2021, 15:22
Я исходил из тех названий файлов, которые вы дали изначально.
Вполне естественно, что, запуская скрипт в других условиях, можно получить ошибки.

timasadovykh@vk
30-01-2021, 18:35
Как оказалось работает не корректно
Хотя если смотреть $files |select Name,CreationTime

то он показывает

Name CreationTime
---- ------------
9103837192.call 31.05.2021 10:00:00
9780198817.call 31.05.2021 10:00:00
9780211925.call 31.05.2021 10:00:00
9780218107.call 31.05.2021 10:05:00
9780247148.call 31.05.2021 10:05:00
9780260274.call 31.05.2021 10:05:00
9780267898.call 31.05.2021 10:10:00
9780271412.call 31.05.2021 10:10:00
9780271413.call 31.05.2021 10:10:00
9780276680.call 31.05.2021 10:15:00
9780292143.call 31.05.2021 10:15:00
9780295704.call 31.05.2021 10:15:00


А по факту в том же total comander

9103837192.call 31.05.2021 10:00:00
9780198817.call 31.05.2021 10:55:00
9780211925.call 31.05.2021 10:55:00
9780218107.call 31.05.2021 11:00:00
9780247148.call 31.05.2021 11:00:00
9780260274.call 31.05.2021 11:00:00
9780267898.call 31.05.2021 11:05:00
9780271412.call 31.05.2021 11:05:00
9780271413.call 31.05.2021 11:05:00
9780276680.call 31.05.2021 11:10:00
9780292143.call 31.05.2021 11:10:00
9780295704.call 31.05.2021 10:10:00

И когда доходит до 40 минуты

9780218107.call 31.05.2021 11:40:00
9780247148.call 31.05.2021 11:40:00
9780260274.call 31.05.2021 11:40:00
9780267898.call 31.05.2021 10:55:00
9780271412.call 31.05.2021 11:45:00
9780271413.call 31.05.2021 10:50:00
9780276680.call 31.05.2021 10:50:00
9780292143.call 31.05.2021 10:00:00
9780295704.call 31.05.2021 10:00:00
9780276680.call 31.05.2021 10:05:00
9780292143.call 31.05.2021 10:05:00
9780295704.call 31.05.2021 10:05:00

В чем может быть проблема? Получается не переходит в другой час

DJ Mogarych
30-01-2021, 20:32
Тотал коммандер - это хорошо, а что в свойствах файла в Windows?

Сортировку проверяйте, возможно, из скрипта нужно убрать

{[int]($_.basename -replace '\D')}

и сделать
|sort name

timasadovykh@vk
30-01-2021, 21:37
Интересно а как тоже самое выглядит на BASH..

и сделать
Код:
|sort name »

Да оно работает, и нет ошибок. :Beer:




© OSzone.net 2001-2012