|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
Zmiana nazwy wielu plików - zwiększenie wartości liczby części nazwy , Matti 26/09/25 17:53 Mam pliki ze zdjęciami z Pixela i Samsunga. Mają niestety różne nazwy, bo Pixel dodaje prefix PXL do nazwy każdego zdjęcia. Potem schemat nazwy jest prawie taki sam jak w Samsungu: rok, miesiąc, dzień_godzina, minuta, sekunda, numer. O ile nie mam problemu z hurtowym usunięciem prefiksu PXL, to ostatnio napotkałem inną rzecz. Godzina użyta w nazwie plików na Pixelu różni się o 2 godziny od faktycznego czasu, kiedy zdjęcie zostało zrobione. Tak jakby używać czasu Greenwich. Samsung w nazwie używa faktycznego czasu wykonania zdjęcia.
Chciałbym wymieszać w jednym katalogu zdjęcia z obu telefonów, tak, aby urządzenie (TV) pokazywał zdjęcia chronologicznie. Musiałbym więc zmienić nazwy zdjęć z Pixela dodając 2 do tej części nazwy pliku, która oznacza godzinę. Pytanie jak? Mam Multi Commandera, ale nie widzę takiej opcji.- ctrl+m , wrrr 26/09/25 18:18
w orginalnym totalu, nie wiem jak w multi, ma cos takiego jak zapisanie wszystkiego co zaznaczyles do podmianek do pliku txt, w sensie cala mape plikow, i tam sobie mozesz pozmieniac wedle woli czymkolwiek (reg-exami w notepad++ czy powershell, ew. z duchem czasu chatemgpt;), wgrywasz obrobiona maske, enter, i masz wszystko pozmieniane - Ant Renamer , resmedia 26/09/25 18:31
https://antp.be/software/renamerdesipere est juris gentium - Ja takie rzeczy robiłem w Excelu , ligand17 26/09/25 19:43
Najpierw jeszcze sprawdzałem czas w EXIF i synchronizowałem, jeżeli była potrzeba.
Potem wyciągałem listę plików przez dir /b > lista.txt, ładowałem listę do Excela, dzieliłem sobie nazwy na kolumny i budowałem sobie plik wsadowy z serią poleceń ren Oryginalna_nazwa_pliku.ext Nowa_nazwa_pliku.ext - A tutaj , ligand17 26/09/25 19:46
podpowiedź od Perplaxity:
Najłatwiej będzie użyć PowerShell, bo pozwala wyciągnąć godzinę z nazwy pliku, odjąć 2 godziny i ustawić nową nazwę nawet dla setek plików. Poniżej znajdziesz przykładowy skrypt dla nazewnictwa typu YYYYMMDD_HHMMSS.jpg (Samsung), przesuwający godzinę o 2 do tyłu:
powershell
Get-ChildItem -Filter *.jpg | ForEach-Object {
if ($_ -match '^(\d{8})_(\d{2})(\d{2})(\d{2})') {
$date = $matches[1]
$hour = [int]$matches[2]
$minute = $matches[3]
$second = $matches[4]
# odejmij 2 godziny i zbuduj DateTime
$originalDateTime = [datetime]::ParseExact("$date $hour$minute$second", "yyyyMMdd HHmmss", $null)
$utcDateTime = $originalDateTime.AddHours(-2)
# nowa nazwa
$newFileName = "{0}_{1:HHmmss}{2}" -f $utcDateTime.ToString("yyyyMMdd"), $utcDateTime, $_.Name.Substring(15)
Rename-Item $_.FullName $newFileName
}
}
Jak to działa:
Skrypt wyszukuje wszystkie pliki .jpg.
Wyciąga datę i godzinę z nazwy.
Przesuwa czas o 2 godziny wstecz.
Składa nową nazwę pliku i zmienia ją na nową.
Jeśli twoje nazwy są trochę inne (np. jest jeszcze numer seryjny na końcu), wystarczy zmodyfikować warunek dopasowania i budowanie nowej nazwy.
Uruchomienie:
Skopiuj skrypt do pliku, np. shift_time.ps1.
Włącz PowerShell w katalogu ze zdjęciami.
Wpisz:
text
powershell -ExecutionPolicy Bypass -File .\shift_time.ps1
Po tej operacji godziny w nazwach będą już zsynchronizowane z czasem Pixel/UTC.
- A Claude wybrał ze swoich 3 "pomysłów" , Menah 27/09/25 00:58
Zrobisz backup przed uruchomieniem?
Opcja PowerShell
Uzasadnienie:
Najlepszy do tego zadania - wbudowane operacje DateTime
Bezpieczny tryb testowy (-WhatIf)
Poprawnie obsługuje przepełnienie godzin/dni
Natywny dla Windows
Wykonanie:
powershellGet-ChildItem "C:\TWOJA\ŚCIEŻKA\DO\ZDJĘĆ" -Filter "PXL_*.jpg" | ForEach-Object { $match = [regex]::Match($_.Name, '^PXL_(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})(\d+)\.(.+)$'); if($match.Success) { $dt = [DateTime]::ParseExact($match.Groups[1].Value + $match.Groups[2].Value + $match.Groups[3].Value + $match.Groups[4].Value + $match.Groups[5].Value + $match.Groups[6].Value, 'yyyyMMddHHmmss', $null).AddHours(2); $newName = $dt.ToString('yyyyMMdd_HHmmss') + $match.Groups[7].Value + '.' + $match.Groups[8].Value; Rename-Item $_.FullName $newName -WhatIf } }
Kroki:
Zmień ścieżkę w kodzie na właściwą
Uruchom z -WhatIf (pokaz co zrobi, bez zmian)
Sprawdź wyniki
Usuń -WhatIf i uruchom ponownie
W sumie to ja nie wierzę w ten internet
- A nad Irfan View myślałeś? , Dexter 26/09/25 20:56
Jak jeźdżę na wycieczki to mam superzooma, fona, druga połówka ma drugiego fona...
W rezultacie po powrocie jest sieczka okrutna, bo każdy sprzęt ma inny format nazewnictwa.
Wrzucam wszystko do Irfana, CTRL + B, wsadowa zmiana nazw, jako wzór zmiany nazwy definiuję datę zrobienia zdjęcia zapisaną w exifie:
$E36868(%Y.%m.%d_%H:%M:%S)_####.jpg
W rezultacie mam plik np.
2025.07.22_09_29_24_0001.jpg
Czyli zdjęcie zrobione 22 lipca 2025 roku, o godzinie 9:29:24.
Te 0001 na końcu to po prostu nr kolejny...
Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
Odpowiedzi oleję.
THX! - O właśnie , ligand17 26/09/25 20:59
IrfanView! Dlaczego o nim zapomniałem? - mam, używam, ale nie pomyślałem, żeby użyć go do zmiany nazwy. , Matti 28/09/25 18:49
Obczaję w takim razie, dzięki - Działa elegancko, o to chodziło. , Matti 29/09/25 09:19
Dzięki Ci :) - ciekawe , Kenny 30/09/25 12:13
zalozylbym, ze exif bedzie mial taki sam timestamp jak urzadzenie, bo skad mialby wziac inny?.:Pozdrowienia:. - To nie to , ligand17 30/09/25 14:33
chodzi o to, że każde urządzenie inaczej nazywa pliki. Możesz mieć timestamp w nazwie w różnych formatach, możesz mieć różne prefixy. Żeby to wszystko uporządkować, to ładujesz do Irfana po kolei zdjęcia z każdego urządzenia, uzgadniasz timestamp w EXIFie (na wypadek jakby któreś urządzenie - np. lustrzanka - nie było zsynchronizowane), a potem całość na raz i zapisujesz w nowym katalogu ze zunifikowanymi nazwami plików.- wyjasnij krok , Kenny 30/09/25 15:19
'uzgadniasz timestamp w exifie'?
Jak rozumiem zmieniasz godzine zdjeciom z tego urzadzenia, ktore mialo zle ustwiona - tylko jak?
ps. czysta ciekawosc, bo challenge mnie zainteresowal...
.:Pozdrowienia:. - W IrfanView , ligand17 30/09/25 17:37
Jest opcja zmiany daty/godziny EXIF. W widoku miniatur (klawisz T) zaznaczasz pliki, którym trzeba zmienić dane, potem PPM i wybierasz "Operacje na plikach JPG" -> "Zmiana w EXIF daty/czasu wykonania" i dostajesz okienko, gdzie możesz ustawić datę na zadaną wartość albo przesunąć godzinę o podaną wartość.
Bardzo przydatna rzecz, jeżeli masz np. zdjęcia z dużej imprezy robione z kilku aparatów i któryś ma przesuniętą datę/godzinę.- O panie, nie kojarzylem , Kenny 30/09/25 17:52
Dzieki.:Pozdrowienia:.
- W exifie może być więcej niż jeden timestamp , Visar 30/09/25 23:24
Oprócz czasu z urządzenia, może być zapisany timestamp z GPSa, jest on w UTF, więc w czasie letnim mamy przesunięcie o 2 godziny, w czasie zimowym o godzinę.Visar - w Pixelu, , Matti 1/10/25 15:28
timestamp w exif był prawidłowy (godzina rzeczywista), ale nazwa pliku była wg UTF.- nie UTF tylko UTC , Matti 1/10/25 15:28
errata
- Jeżeli będziesz to robił regularnie , hokr 28/09/25 06:50
najlepiej stworzyć skrypt w jakimś języku, zamiast klikać za każdym razem.
Zainstaluj sobie Pythona, program jest krótki i prosty, każde AI powinno dać radę. Sprawdziłem teraz na ChatGPT i robi bez problemu.
Tylko pamiętaj, żeby wcześniej sprawdzić na kilku skopiowanych zdjęciach, czy nie robi jakiś błędów! - Warto wiedzieć, że istnieje ExifTool , Sherif 28/09/25 09:11
To narzędzie również pozwala zmieniać nazwy plików https://exiftool.org/filename.html - Dziękuję wszystkim za pomoc, , Matti 29/09/25 09:19
Irfan View poradził sobie znakomicie. |
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|