Jump to content

Fotos automatisch auf Platte kopieren


Empfohlene Beiträge

Werbung (verschwindet nach Registrierung)

Hallo zusammen,

 

vielleicht interessiert es den einen oder anderen hier im Forum, deshalb teile ich gerne meine Erfahrung mit der Nex 5n.

Die neuen 16Gb (oder 32Gb) SDs ermöglichen es, tagelang mit dem Apparat unterwegs zu sein, ohne jemals eine neue SD reinzustecken. Wenn aber die Fotos/Videos irgendwann sauber sortiert auf dem Heim-PC, in bestimmten Ordnern landen sollen, wird es ziemlich zeitaufwendig!

Deshalb habe ich mir einen "Visual Basic" Skript (vbs) gebastelt, der die Fotos automatisch von der SD auf die Festplatte kopiert.

 

Hier die wesentlichen Merkmale des Skripts:

-alle Fotos und Videos werden in Ordnern mit Monatsnamen einsortiert (zB. "2012-05": somit kann im Nachhinein auch auf Ordner Name sortiert wird, und es bleibt trotzdem chronologisch).

-ist ein Ordner nicht vorhanden, wird er angelegt.

-existierende Videos und Fotos werden nicht kopiert (also nicht überschrieben).

 

Mit ein bisschen Windows Know-How geht das ganze relativ einfach:

1- "importDataFromSD.vbs" Datei in Windows anlegen: rechts-klick im Windows-Explorer, "Neu/Textdokument", Namen in "importDataFromSD.vbs" abändern.

2- folgenden Inhalt reinkopieren:

' import für Sony N5

' Sven H., 04.05.2012, v1

 

Dim sPhotoOriginFolder, sDestinationFolder, sFile, oFSO

Set oFSO = CreateObject("Scripting.FileSystemObject")

 

sPhotoOriginFolder = "L:\DCIM\100MSDCF"

sVideoOriginFolder = "L:\PRIVATE\AVCHD\BDMV\STREAM"

sDestinationFolder = "G:\Photos"

 

sPhotoOriginFolder = InputBox("Photo Origin Folder: ", "Enter photo origin folder", "L:\DCIM\100MSDCF", 100, 100)

sVideoOriginFolder = InputBox("Video Origin Folder: ", "Enter video origin folder", "L:\PRIVATE\AVCHD\BDMV\STREAM", 100, 100)

sDestinationFolder = InputBox("Destination Folder: ", "Enter destination folder", "G:\Photos", 100, 100)

 

sDestinationFolderInit = sDestinationFolder

 

 

Wscript.StdOut.WriteLine "-Start-"

 

For Each sFile In oFSO.GetFolder(sPhotoOriginFolder).Files

WScript.StdOut.WriteLine "Processing " & sFile

sDestinationFolder = sDestinationFolderInit

sFileDate = Replace(Left(sFile.DateLastModified,10),".","-")

sFileDate = split(sFileDate,"-")(2) & "-" & split(sFileDate,"-")(1)

sDestinationFolder = sDestinationFolder & "\" & sFileDate

sFlagNothing = "true"

 

'Der Folder für die Datei existiert noch nicht und wird angelegt

If Not oFSO.FolderExists(sDestinationFolder) then

WScript.StdOut.WriteLine " " & sDestinationFolder & " wird angelegt..."

oFSO.CreateFolder(sDestinationFolder)

sFlagNothing = "false"

end if

 

' Die Datei existiert noch nicht und wird kopiert

If Not oFSO.FileExists(sDestinationFolder & "\" & oFSO.GetFileName(sFile)) Then

WScript.StdOut.WriteLine " " & oFSO.GetFileName(sFile) & " wird nach " & sDestinationFolder & " kopiert..."

oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True

'WScript.StdOut.Write "Copying : " & Chr(34) & oFSO.GetFileName(sFile) & Chr(34) & " to " & sDestinationFolder

sFlagNothing = "false"

End If

 

if sFlagNothing = "true" then

WScript.StdOut.WriteLine " " & " Die Datei " & oFSO.GetFileName(sFile) & " existiert bereits"

end if

 

Next

 

 

' Das gleiche für die Videos

 

Wscript.StdOut.WriteLine "-Videos-"

For Each sFile In oFSO.GetFolder(sVideoOriginFolder).Files

WScript.StdOut.WriteLine "Processing " & sFile

sDestinationFolder = sDestinationFolderInit

sFileDate = Replace(Left(sFile.DateLastModified,10),".","-")

sFileDate = split(sFileDate,"-")(2) & "-" & split(sFileDate,"-")(1)

sDestinationFolder = sDestinationFolder & "\" & sFileDate

sFlagNothing = "true"

 

'Der Folder für die Datei existiert noch nicht und wird angelegt

If Not oFSO.FolderExists(sDestinationFolder) then

WScript.StdOut.WriteLine " " & sDestinationFolder & " wird angelegt..."

oFSO.CreateFolder(sDestinationFolder)

sFlagNothing = "false"

end if

 

' Die Datei existiert noch nicht und wird kopiert

If Not oFSO.FileExists(sDestinationFolder & "\" & oFSO.GetFileName(sFile)) Then

WScript.StdOut.WriteLine " " & oFSO.GetFileName(sFile) & " wird nach " & sDestinationFolder & " kopiert..."

oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True

'WScript.StdOut.Write "Copying : " & Chr(34) & oFSO.GetFileName(sFile) & Chr(34) & " to " & sDestinationFolder

sFlagNothing = "false"

End If

 

if sFlagNothing = "true" then

WScript.StdOut.WriteLine " " & " Die Datei " & oFSO.GetFileName(sFile) & " existiert bereits"

end if

 

Next

 

 

Wscript.StdOut.WriteLine "-Ende!-"

 

Do While Not WScript.StdIn.AtEndOfLine

Input = WScript.StdIn.Read(1)

Loop

wscript.quit

3- Skript anpassen: der Skript muss natürlich der PC-Umgebung angepasst werden, in erster Linie die "sDestinationFolder" Variable. Sie bestimmt den Zielordner aller Unterordner.

Die "sPhotoOriginFolder" und "sVideoOriginFolder" Variablen sollten bei allen Sony Nex identisch sein (und auch standard, wenn ich mich recht entsinne). Die Anpassungen kann man ggf. vor dem Start des Skripts in den 3 kleinen Fenstern machen aber die Änderungen sind nicht persistent.

4- einen "Shortcut", bzw. "Verknüpfung", anlegen der auf die Datei verweist: auf die Datei "importDataFromSD.vbs" einen rechts-klick, dann "Verknüpfung erstellen" wählen.

5- die Eigenschaften der Verknüpfung anpassen: auf die Datei "importDataFromSD.vbs" einen rechts-klick, dann "Eigenschaften". Den "Ziel" Parameter wie folgt abändern: "C:\Windows\System32\cmd.exe /k cscript "C:\importDataFromSD.vbs" ".

6- ein doppel-klick auf die Verknüpfung und schon geht es los!

 

 

Falls irgendwas während dem Ablauf des Skripts schief geht, einfach im Commando-Fenster "Steuerung+c" drücken. Der Skript wird gestoppt.

 

Das ganze ist für Windows-Neophyten nicht unbedingt trivial, aber mit ein bisschen Grundkenntnis in der Materie sollte es relativ einfach gehen.

 

Viel Spass und schöne Fotos!

-k

Link zum Beitrag
Auf anderen Seiten teilen

Unter Windows 7 kommt bei mir eine Fehlermeldung: "C:\importDataFromSD.vbs(15, 28) Kompilierungsfehler in Microsoft VBScript: Anweisung erwartet.

Das neue Verzeichnis (bei mir D:\NEX-Photos) wird nicht angelegt.

Gruß Kaspar

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...