Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Изменение даты и времени создания файла (http://forum.oszone.net/showthread.php?t=347803)

timasadovykh@vk 30-01-2021 00:24 2947959

Изменение даты и времени создания файла
 
Доброго вечера товарищи!

Хотел бы реализовать одну штучку
Имеется база файлов 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 2947960

Цитата:

Цитата timasadovykh@vk
Имеется база файлов txt, »

В чём имеется? В текстовом файле? Выложите его образец.

DJ Mogarych 30-01-2021 09:27 2947973

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 2948005

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

Но изменил

PHP код:

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 2948019

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

timasadovykh@vk 30-01-2021 18:35 2948040

Как оказалось работает не корректно
Хотя если смотреть
Код:

$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 2948052

Тотал коммандер - это хорошо, а что в свойствах файла в Windows?

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

{[int]($_.basename -replace '\D')}
и сделать
Код:

|sort name

timasadovykh@vk 30-01-2021 21:37 2948066

Интересно а как тоже самое выглядит на BASH..

Цитата:

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

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


Время: 01:38.

Время: 01:38.
© OSzone.net 2001-