Показать полную графическую версию : Изменение даты и времени создания файла
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"
---------------------------------
и тд
Имеется база файлов 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.