PowerShell - [решено] Дата съемки

Аватара пользователя
Kazun

Re: PowerShell - [решено] Дата съемки

Сообщение Kazun »

Код:

Код: Выделить всё

[datetime]::ParseExact($pdate,"yyyy:MM:dd HH:mm:ss`0",$Null).ToString('yyyyMM dd_HHmmss')
Аватара пользователя
Elven

Re: PowerShell - [решено] Дата съемки

Сообщение Elven »

Полагал, что переименование в таком скрипте будет самым простым делом, но похоже рано возрадовался:

Код:

Код: Выделить всё

add-type -AssemblyName System.Drawing
Get-ChildItem d:\test\*.jpg | ForEach-Object {
$file = New-Object System.Drawing.Bitmap($_.FullName)
$pdate = [System.Text.Encoding]::ASCII.GetString($file.GetPropertyItem(36867).Value)
$nfname = [datetime]::ParseExact($pdate,"yyyy:MM:dd HH:mm:ss`0",$null).ToString('yyyyMMdd HH_mm_ss')
Rename-Item -Path $_.FullName -NewName ($nfname + $_.Extension)
}

Либо я опять что-то делаю не так, либо скрипт цепляется за файл, ибо:

Код:

Код: Выделить всё

Rename-Item : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
строка:6 знак:12
+ Rename-Item 
Аватара пользователя
Kazun

Re: PowerShell - [решено] Дата съемки

Сообщение Kazun »

Перед переименованием:

Код:

Код: Выделить всё

 $file.Dispose()
Аватара пользователя
Elven

Re: PowerShell - [решено] Дата съемки

Сообщение Elven »

Вот теперь все супер. Финальная версия:

Код:

Код: Выделить всё

add-type -AssemblyName System.Drawing
Get-ChildItem d:\test\*.jpg | ForEach-Object {
$file = New-Object System.Drawing.Bitmap($_.FullName)
$pdate = [System.Text.Encoding]::ASCII.GetString($file.GetPropertyItem(36867).Value)
$npname = [datetime]::ParseExact($pdate,"yyyy:MM:dd HH:mm:ss`0",$null).ToString('yyyyMMdd HH_mm_ss')
$file.Dispose() 
Rename-Item -Path $_.FullName -NewName ($npname + $_.Extension)
}
Аватара пользователя
Iska

Re: PowerShell - [решено] Дата съемки

Сообщение Iska »

Цитата Elven:



Финальная версия:
PowerShell - [решено] Дата съемки




Неа Изображение. Финальная будет тогда, когда Вы начнёте учитывать возможность наличия одинакового даты/времения в Exif у нескольких файлов.
Аватара пользователя
Elven

Re: PowerShell - [решено] Дата съемки

Сообщение Elven »

Iska, для конкретно этой задачи это финальная версия, здесь одинаковой даты-времени не было, так уж получилось, что это было известно заранее.

А может кто-нибудь объяснит, все же, что это за `0?
Аватара пользователя
Kazun

Re: PowerShell - [решено] Дата съемки

Сообщение Kazun »

0x0132 DateTime ascii string 20 Date/Time of image . Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20bytes.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»