Mam problem z importowaniem zdjęć na komputer z aparatów. Ale od początku.
Pracuje w firmie gdzie do dokumentacji robimy kilka zdjęć aparatem(każdy ma swój) i później zgrywamy to na komputer szefa.
Starsze aparaty były wykrywane przez Windowsa jako aparat i poprostu klikało się prawym przyciskiem myszy na nazwę aparatu w eksploratorze plików i pojawiało się importuj. I komputer sam tworzył podfolderze z datą. Działało to dobrze. Odkąd pojawiły się nowe aparaty w firmie zaczął się problem. Po podpięciu do komputera nie wykrywa ich jako aparat tylko pamięć masową. I można importować jedynie przez aplikację zdjęcia co średnio działa… albo poprostu tworzyć folder z aktualną data i kopiować. Tu jest drugi problem bo aparaty dublują nazwy i już się zdążyło ze ktoś zastąpił zdjęcia o takiej samej nazwie…
Znacie jakiś prosty program który importowałby zdjęcia z karty SD tworząc od razu podfolder z datą?
Jeżeli to nie ten dział to przepraszam.
#programowanie #techpigulka #pracbaza #fotografia
ChatGPT zaproponował taki skrypt, jak będę miał dostęp do apartow to go przetestuję.
Myślicie że wszystko jest tutaj ok czy coś wymaga poprawy?
Jeszcze raz dziękuję za zainstalowanie 😉
# Ustawienia
$destinationPath = "C:\Users\TwojaNazwaUżytkownika\Pictures\ImportowaneZdjęcia" # Ścieżka docelowa
# Znajdź dysk z kartą SD
$sdCard = Get-WmiObject Win32_DiskDrive | Where-Object { $_.MediaType -eq "Removable Media" }
if ($sdCard) {
\# Uzyskaj literę dysku<br />
$sdCardLetter = \(Get\-WmiObject Win32\_LogicalDisk | Where\-Object \{ $\_\.DeviceID \-eq $sdCard\.DeviceID \}\)\.DeviceID<br />
\# Pobierz wszystkie pliki zdjęć z karty SD<br />
$images = Get\-ChildItem \-Path "$sdCardLetter\\\*" \-Include \*\.jpg, \*\.jpeg, \*\.png \-Recurse<br />
foreach \($image in $images\) \{<br />
\# Odczytaj datę utworzenia zdjęcia<br />
$creationDate = \(Get\-Item $image\.FullName\)\.CreationTime<br />
\# Ustal nazwę folderu na podstawie daty<br />
$dateFolder = $creationDate\.ToString\("yyyy\-MM\-dd"\)<br />
$finalDestinationPath = Join\-Path \-Path $destinationPath \-ChildPath $dateFolder<br />
\# Utwórz folder docelowy, jeśli nie istnieje<br />
if \(\-not \(Test\-Path \-Path $finalDestinationPath\)\) \{<br />
New\-Item \-ItemType Directory \-Path $finalDestinationPath<br />
\}<br />
\# Ustal nową nazwę pliku, aby uniknąć nadpisywania<br />
$newFileName = "\{0\}\_\{1:yyyy\-MM\-dd\_HH\-mm\-ss\}\{2\}" \-f $image\.BaseName, $creationDate, $image\.Extension<br />
$newFilePath = Join\-Path \-Path $finalDestinationPath \-ChildPath $newFileName<br />
\# Skopiuj zdjęcie do odpowiedniego folderu z nową nazwą<br />
Copy\-Item \-Path $image\.FullName \-Destination $newFilePath \-Force<br />
\}<br />
Write\-Host "Zdjęcia zostały zaimportowane do: $destinationPath"<br />
} else {
Write\-Host "Nie znaleziono karty SD\."<br />
}
@majlu11 Ja używam Rapid Photo Downloader https://damonlynch.net/rapid/
Panowie skrypt udało mi sie dostosowac w weekend i spełnia wszystkie moje funkcje. Utworzyłem skrót skryptu i we własciwosciach/element docelowy dodałem powershell -ExecutionPolicy Bypass -File (i tutaj jest sciezka mojego skryptu). Ale skrypt nie uruchamia sie, pojawia sie czarne okno na sekunde i nic. Z pozycji powershell skrypt działa.
Zaznaczałem uduchom jako administrator. Macie może jakiś pomysł?
Zaloguj się aby komentować