Forum:	Datenspeicher
Téma:	Daten von USB-Stick automatisch auf Festplatte kopieren
---------------------------------------------------------------

Captain dan:
Gibt es sowas? 
Ich hab nämlich mein EPIA Board im Auto und es ist lästig, 
immer wieder den kopier Befehl einzugeben, wenn ich MP3 files 
hochladen will!

BOBsega:
Es gibt das nette Programm Filesync, aber ganz automatisch gehts wohl nicht...
BOBsega

ozoffi:
Da der USB-Stick wie ein Laufwerk behandelt wird (zumindestens unter Win XP) "greift" da auch die Autostart-Funktion...
Das kannst Du nutzen, um eine autorun.inf anzulegen, die eine bat-Datei aufruft, in der der entsprechende Kopierbefehl eingetragen ist...
Konkretes Beispiel:
Im Root-Verzeichnis des USB-Sticks legst Du ein Verzeichnis MP3 an.
In dieseskopierst Du alle hochzuladenten MP3-Files.
Ebenfalls im Root-Verzeichnis erstelslt du mit einem Texteditor folgende Datei:autorun.inf (gegebenenfalls zuerst autorun.txt und dann umbenennen)
In dieser Datei trägst Du folgendes ein:
[autorun]
open = kopieren.bat
Dann erstellst Du ebenfalls mit demTexteditor die Datei kopieren.bat.
Da steht dann z.b. drinn:
cd mp3
copy *.* c:\mp3
echo FERTIG
Wenn Du nun den Stick ansteckst, sollte dieser als Laufwerk erkannt und bei aktiver autorun Funktion eben die autorun.inf ausgeführt werden.

Hobi:
am besten noch per exit die Batch beenden und das Fenster gleich wieder schließen :D

Captain dan:
Dank Dir!
Das ist genau das, was ich gesucht habe!
Dieses Forum hier ist echt irre!! :P

ozoffi:
Gerne - wenn es denn nicht automaitsch geht, dann kansnt Du ja noch immer einfach nur die Bat-Datei anklicken und dann wird alles nach Wunsch kopiert (wenn man z.b die Autorun-Funktion deaktiviert hat o.ä.)

2of11:
Warum nicht die .bat direkt in den Autostart Ordner legen? Das hätte den Vorteil, dass man durch Drücken von SHIFT beim Booten das Ausführen der Datei unterbinden kann...denke nicht dass das mit o.g. Methode möglich ist.

ozoffi:
Weil ja die Datei nicht jedesmal beim Booten des PCs ausgeführt werden soll, sondern nur, wenn der Stick angesteckt wird ...
Und wie willst Du die SHIFT gedrückt halten, wenn Du gar keine Tastatur hast?

2of11:
Oh wer lesen kann ist klar im Vorteil..... hatte den Post nur überflogen :? Sorry

ozoffi:
Kein Problem ;)
Pbrigens hab' ich gerade entdeckt, dass man unter XP auch (mittels Tweakui) sogenannte "Handlers" erstellen kann... Da kann man dann z.b. so einen Kopierhandler fix einbauen, der bei vorhandensein von Musikdateien, diese automatisch kopiert ...

glaucidium:
Wenn Du an den copy-Befehl noch die Option /Y anhängst, dann fragt das System auch nicht mehr nach, falls die gleiche Datei zufälligerweise schon einmal auf der Festplatte vorhanden ist.

DODGE 1500:
ich werde das auf jeden fall nachermal ausprobieren.
das ich da nicht selber drauf gekommen bin :)
dann wuerde ja das ganze auch mit einer USB festplatte klappen...
Juhu da tun sich ganz neue welten auf :)

sewy:
Und, hats funktioniert?

DODGE 1500:
Hallo,
habe leider mom keine zeit um am truck zu basteln aber sobald ich mit meinem bike fertig bin werde ich das mal ausprobieren.

mcnasty:
Hi leute,
hab das mit der .ini und .bat datei aufem usb stick jetzt auch mal versucht.
Also das kopieren.bat funktioniert wenn ichs "per hand anklicke" aber das der bat befehel von selbst ausgeführt wird (über die autorun.ini) geht nicht!
Wenn ich das ganze auf ne cd mach geht es aber!
Also is wohl das autoplay vom usb stick unter windows xp anders/falsch eingestellt! Wie kann ich das korrigieren?
Also über rechtsklick auf den usb stick im arbeitsplatz und dann auf eigenschaften und autoplay bringt nix??
Oder auf autoplay direkt geht nicht
MfG

sewy:
ich denke das müsste über einen Registry eintrag funktionieren, aber frag mich nicht wie...
Irgendwie das Autoplay für alle externen Geräte akitvieren....

piwy:
Google mal nach dem Tool "MobileAssistant"!!!
Es kann einen USB-Stick bootfähig machen, indem er eine autorun.ini erstellt und auf dem PC ein Programm installiert das schaut ob ein USB-Stick mit einer autorun.ini eingesteckt wurde .......
Funzt bei mir ohne Probs!

E-P-S:
Also wenn da wirklich Bedarf nach ist könnte ich sowas in Visual Basic programmieren.
Denke mir das so:das Programm wird geladen und guckt alle 10sek ein Fester Laufwerksbuchstabe existiert(normal ändert sich das ja nicht bei nem Car-PC).
Welcher das sein soll könnte man in einer INI-Datei ablegen.
Ist nicht wirklich aufwendig.
Und wenn der Buchstabe da ist, soll der den ganzen Inhalt da rein kopieren.
Die INI Datei könnte z.B. so aussehen.
Wobei dann eigentlich der QuellDrive Parameter überflüssig ist.
[Allgemein]
QUELLDRIVE=D:
QUELLDIR=D:\MP3\*.mp3
ZIELDIR=C:\MP3

Ggf. könnte man auch ein Programm mit einem Bestimmten Fenster-Titel beenden.
Das wäre ganz nützlich wenn man (wie bei CPOS) die EXE Updaten will
(automatisch)

SirGroovy2004:
Servus E-P-S,
ich stand kürzlich vor dem selben Problem. Ich fände es super, wenn du sowas programmieren würdest! Könntest du dann vielleicht den Quellcode auch Fuchs zugängig machen? Dann könnte er es direkt in CPos integrieren.
Recht herzlichen Dank für die Aufmerksamkeit.
SirGroovy2004

MacG:
Klingt gut, die INI könnte man auf dem USB-Stick ablegen. Wenn man mal Bilder oder MP3 kopieren will.

E-P-S:
na okay... ich setz mich morgen mal dran...
mal gucken was rauskommt *g*

E-P-S:
Sodele..
erstmal die einfache Version:
Das Programm kopiert die Dateien aus der INI-Datei.
Zitat:
USBUPD.ini
[Allgemein]
Intervall=1000
Quelle=F:\*.*
Ziel=C:\Test\
Subdirs=True

Quelle= Der Pfad des USB-Sticks+welche Dateien kopiert werden sollen
Ziel=Wohin sollen die Dateien kopiert werden
Intervall=Wieoft soll nach dem Stick geguckt werden (Angaben in Millisekunden) 
(Achtung. Je kleiner der Wert desto höher die Systembelastung)
Subdirs=Sollen Unterverzeichnisse mit kopiert werden
(Wusste nicht ob ihr es braucht.Aber das wäre ja ganz sinnvoll, wenn man nicht nur ein Verzeichnis mit MP3's kopieren will sondern in dem Verzeichnis auch Interpret und Alben drin sind.)
Die INI-Datei gehört ins selbe Verzeichnis wie die EXE
Solle es auf dem in Quelle angegebenem Laufwerk(Root) eine INI geben, so ziehen diese Werte. (wie von MacG gewünscht)
(kann man ggf noch ändern, sodas man den pfad nimmt ,der in der EXE-Pfad INI steht, statt der root)

Johnny:
werd das auch mal ausprobieren..das richtig geil ;)

mister.xyz:
ohne das Programm jetzt getestet zu haben folgendes:
-ich stecke den stick rein
-daten werden kopiert
-ich lasse den stick stecken
-daten werden nach wartezeit (a)wieder kopiert oder (b)nicht mehr kopiert
was passiert?

E-P-S:
nee nee... 
das wäre ja falsch.
die daten werden natürlich erst dann wieder kopiert nachdem der stick entfernt worden ist *g*

Muhagglschorsch:
Also: ich habs jetzt getestet, die das programm kopiert ja jedes file, ega obs schon existiert oder nicht.. 
wäre es möglich 
1. nur dateien zu kopieren, die im zielverzeichnis noch nicht existieren
2. das ganze mit ner schönen grafischen Ausgabe (am besten skinbar) zu versehen, so mit fortschrittsbalken etc.
3. eventuell noch ne einstellmöglichkeit "do [xxx] on usbstick-found" einzubauen um beispielsweise ein "neuer USB-Stick erkannt, kopiere daten" sound einzubauen. 
4. vorm kopieren auf dem stick nach einer "copyme.ini" zu suchen und nur bei deren vorhandensein (evtl einstellbar) aktiv zu werden. Somit könnte man das ganze auch auf die heimische mp3-sammlung übertragen bei der der laufwerksbuchstabe ja immer "da" ist
5. einen "exit" menüpunkt im systray einzubauen

dann wär das tool wirklich wahnsinnig genial.
gruss jan

SirGroovy2004:
Servus E-P-S,
ich test´s auch gerade. Leider funktionierts nicht. Meine Ini lautet:
[Allgemein]
Intervall=1000
Quelle=G:\*.*
Ziel=E:\Eigene Musik
Subdirs=True
Dementsprechend wird alle 1000 Millisekunden (also jede Sekunde) nach dem USB Stick gefahndet. Mein USB Stick hat wirklich den Laufwerksbuchstaben G:\ . E:\Eigene Musik passt auch an diesem Rechner. Aber: Nix passiert! Wo liegt der Fehler?
CU
SirGroovy2004

Muhagglschorsch:
Ich vermute am leerzeichen im verzeichnisname..
versuchs mal mit Ziel="e:\eigene musik\"

E-P-S:
Also wie man ein Programm Skinbar macht hab ich leider keine Ahnung von...
@SirGroovy
ich DENKE es liegt an dem fehlendem "\" 
aber da werd ich gleich ändern, das man das nichtmehr eingeben muss.
@Muhagglschorsch
ich gucks mir mal an was man da machen kann...

SirGroovy2004:
Servus Muhhacklschoasche,
des wars! Beinahe jedenfalls! USBUPD.exe kommt nicht mit Leerzeichen klar. 
Leider bekam ich nachdem ich aus Ziel=E:\Eigene MusikZiel="e:\eigene musik\" gemacht habe einen ´Laufzeitfehler 67´ präsentiert. Anschliessend hab ich´s mit e:\eigenemusik versucht. Jetzt geht´s.
Danke Dir.
SirGroovy2004

E-P-S:
Zitat:
[Allgemein]
Intervall=1000
Quelle=N:\*.*
Ziel=C:\Test\
Subdirs=True
POPUP=True
[Sound]
;START=C:\TEST1.WAV
START=C:\WINDOWS\Media\chimes.wav 
;ENDE=C:\TEST2.WAV
ENDE=C:\WINDOWS\Media\chord.wav 


-Fertig:
SirGroovys Problem sollte behoben sien
WAV Dateien abspielen
POPUP Option
TODO:
-Exit Button in Systray
-Fortschrittsbalken


Konnte nicht Testen... alles Theorie.
Geht's soweit?

Oh ganz schön aufgebläht..
Als Attachment nichtmehr anfügbar.
USBUPD - Version 1.0.0.10
Download

E-P-S:
edit... stimmt
jetzt weiss ich auch warum *g*
Das mit dem leerzeichen änder ich sofort ab...
Aber jetzt ...
Link update oben!
Aktuell 1.0.0.10

Muhagglschorsch:
heyy das sieht ja mal richtig schick aus.. mach das fenster noch kleiner und leg die bitmap-datei mit der nachricht im verzeichnis ab (sodass ich sie ändern kann ohne reshack zu benutzen :)) und das ding is perfekt

E-P-S:
Wie kannst du denn damit den Text ändern?
Das Fenster ist 800x600.

E-P-S:
Zitat:
[Allgemein]
[Allgemein]
Intervall=1000
Quelle=N:\*.*
Ziel=C:\Test\
Subdirs=True
POPUP=True
[Sound]
;START=C:\TEST1.WAV
START=C:\WINDOWS\Media\chimes.wav 
;ENDE=C:\TEST2.WAV
ENDE=C:\WINDOWS\Media\chord.wav 
[Text]
Label1=Wechselmedium gefunden
Label2=Daten werden kopiert
Label3=Bitte warten...


-Fertig:
Hintergrundbild=USBUPD.JPG
Text in INI-Datei
TODO:
-Exit Button in Systray
-Fortschrittsbalken

Konnte nicht Testen... alles Theorie.
Geht's soweit?

USBUPD - Version 1.0.0.11
Download


//Edit//
Hab gerade noch ein Programm gefunden... Aber das können wir halt nicht anpassen :D
Klickst Du &lt;hier&gt;

Muhagglschorsch:
also ich würde das halt so machen, dass der text im bild steht.. also fest in der grafik drin... 
fenster etwas kleiner, damits ned den ganzen bildschirm einnimmt, eventuell position und grösse per .ini einstellbar oder grösse anhand der .jpg bestimmen. so kann bei vielen anwendungen die volume-bar noch sichtbar bleiben. achja und ne always-on-top funktion sollte es noch geben find ich :) auch per .ini steuerbar

Muhagglschorsch:
also kurzer statusbericht: das teil startet, öffnet das fensterl, beendet sich danach aber nicht und braucht nach dem kopieren 100% CPU-Last
achja und mal ganz im ernst: das (c) by rechts unten wär für mich n ernsthafter grund, es nich herzunehmen. Ein CarPC is für mich was individuelles, da möcht ich keine fremden (marken)namen drauf lesen :)
eine bitte noch: lass mir doch mal bitte den source zukommen, ist für mich ne feine gelegenheit, mich bissl in VB einzuarbeiten. UND lass uns mal nen thread im development forum dazu aufmachen, dann wird das hier ned weiter breitgetreten :) Ich denk mal aus diesem file-management tool grundsatz lässt sich was machen, vor allem wenn wir open source bleiben.
/Jan

SirGroovy2004:
Servus E-P-S,
Servus Muhagglschorsch,
nochmal meine Bitte: Macht daraus doch ein Plug - in für Cpos! Bittäää! Des wär soo praktisch. Ausserdem läuft dann noch ein Programm auf meinem Car-PC im Hintergrund weniger.
CU
SirGroovy2004

E-P-S:
*fg*
Das (C) hab ich nur reingemacht um Dich zu ärgen:P 
Da du ja den "reshack" benutzt sollte das ja kein Problem sein gelle?!
Ausserdem ist das doch sooo klein und unauffällig...

Viel schlimmer ist das mit den 100%
das guck ich man.
@SirGroovy2004
Plugin Für CPOS?
Keine Idee wie das geht.
Aber Fuchs kann gern den Code haben.
//Edit//
kann das mit den 100% nicht nachvollziehen. Während dem kopieren ja... aber dan geht er brav wieder runter...

Muhagglschorsch:
siehe und staune:

E-P-S:
Hmmm.... sehr merkwürdig.
Sieht so aus als ob er das nicht mitbekommt das das fenster schon wieder geschlossen ist.
Will heißen deine Kiste ist zu schnell bzw die zu Kopierenden Dateien zu klein.
Probier mal "normale" Dateien, sprich MP3 von 3MB oder so.
Das ist die einzige Erklärung die ich dazu habe.

Muhagglschorsch:
meine idee wäre die folgende: leg am ANFANG vom kopierprozess ne datei an "copyinprogress.tmp" und lösch sie am ende wieder. 
achja und ne idee für nen fortschrittsbalken wäre diese hier:
starte nich einmal den befehl copy h:\*.* D:\docs\musik\mp3in\ sondern starte für jede datei nen einzelnen copy befehl.. damit könntest du immerhin ein "datei 1 von 1337"-anzeigesystem realisieren UND du könntest überprüfen, ob die datei schon existiert. 
/Jan
achja btw: das (c) bekomm ich mit reshack nich raus, schon probiert.

E-P-S:
Zitat:
das (c) bekomm ich mit reshack nich raus, schon probiert.

Dann kann ich das in der nächsten Build wieder rausnehmen.

Mit dem kopieren hab ich es mir recht einfach gemacht.
Der hockt sich einfach auf die shell und startet einen xcopy-befehl (erweiterer copy)
Das Problem ist, das der Shell-Befehl by VB6 asynchron läuft.
Will heißen das das Programm weiterläuft obwohl der Copy-Job noch nicht beendet ist.
Das war halt am Anfang des Projekts das schnellste+einfachste.
Dadurch war das Proggi ja auch extrem klein.
Mittlerweile nimmt das ja schon MS-Word Größe:wink: 
Hat jemand eine Rekursiv-Funktion inkl. Sub-Dirs?
Dann muss ich das nochmal ändern...
Aber normalen Dateien geht das, oder?
P.S. hab das Warten auf Copy-Job Ende so gelöst:
Code:
If IsFolder&#40;Ziel&#41; = False Then MkDir SplitPathFromFile&#40;Ziel&#41;
&nbsp; If Subdirs = False Then
&nbsp; &nbsp; &nbsp;Copystring = &quot;cmd /ccopy &quot; + Quote&#40;Quelle&#41; + &quot; &quot; + Quote&#40;Ziel&#41; + &quot; /Y /V&quot;
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp;Copystring = &quot;cmd /cxcopy &quot; + Quote&#40;Quelle&#41; + &quot; &quot; + Quote&#40;Ziel&#41; + &quot;/S /Y /V&quot;
&nbsp; End If
&nbsp; CopyID = Shell&#40;Copystring&#41;
&nbsp; 'MsgBox &#40;&quot;Copy läuft&quot;&#41;
&nbsp; 
&nbsp; 'Do
&nbsp; Do Until GetProcID&#40;&quot;C&#58;\WINDOWS\system32\cmd.exe&quot;&#41; = CopyID
&nbsp; DoEvents
&nbsp; Loop
&nbsp; &nbsp; 
&nbsp; Do Until GetProcID&#40;&quot;C&#58;\WINDOWS\system32\cmd.exe&quot;&#41; &lt;&gt; CopyID
&nbsp; DoEvents
&nbsp; Loop


Muhagglschorsch:
halt, ich hab den fehler gefunden..
mein windows ist auf e:\ installiert

Vicious:
Muhagglschorsch hat folgendes geschrieben:halt, ich hab den fehler gefunden..
mein windows ist auf e:\ installiert
WTF? Wie das denn:?::wink:

Muhagglschorsch:
Vicious hat folgendes geschrieben:Muhagglschorsch hat folgendes geschrieben:halt, ich hab den fehler gefunden..
mein windows ist auf e:\ installiert
WTF? Wie das denn:?::wink:
des is easy :) einfach beim installieren die 3. partition auswählen.
schon isses e:

E-P-S:
Sourcecode
wäre schön wenn jemand Änderungen macht, die auch der Allgemeinheit mitteilt.

chrisator:
Könnte jemand das ganze noch mal zum DL bereitstellen.
Da ja jetzt der Winter kommt und man wieder mehr zeit hat will ich mich mal wieder mit VB beschäftigen :) .
danke im Voraus

E-P-S:
ja sicher dat :-)
Programm
Sourcecode

chrisator:
Vielen Dank und wenn ich was neues brauchbares habe dann schreibe ich das hier natürlich.
Aber erstmal wieder in VB reinfriemeln...schon ewig net mehr gemacht.

spooky.de:
http://www.winforpro.com/reports/synctoy/synctoy.php

schonmal das angetestet?

KalleMinogue:
Könnte jemand das Programm nochmal hochladen?
Danke!
Gruß Kalle

E-P-S:
jepp: &lt;hier&gt;

KalleMinogue:
Super Vielen Dank
Gruß Kalle

Anti_:
Hmm wieso so kompliziert ne batch tuts doch auch
Code:
@echo off
cls
loop1&#58;
if exists d&#58;\stickid.txt goto startcopy
rem * hier sollte noch ein pausebefehl hin *
goto loop1&#58;
startcopy&#58;
robocopy &quot;d&#58;\mp3&quot; &quot;C&#58;\mp3\Stick&quot; /mir
loop2&#58;
if not exists d&#58;\stickid.txt goto loop1
rem * hier sollte noch ein pausebefehl hin *
goto loop2&#58;
So legt er immer einen exacten Mirror an(es werden auch welche gelöscht die nicht mehr auf dem Stick sind), oder robocopy /E statt /mir , dann werden neue dazu kopiert aber keine gelöschten entfernt. 
Robocopy ist ein Tool von Microsoft mit Fortschrittsanzeige. Runterladen und halt ins gleiche Verzeichnis wie die BAT legen oder ins Windows dir. Und freeware tools zum warten gibts ganz sicher auch. 
Gruß,
Anti

DeASI:
geiles programm, ich hab mir zwar auch shcon ne bat datei geschrieben, abermusste die bislang immer manuell starten und jetzt gehts schön automatisch.
kann man eigentl auch aus 2 verzeichnissen alle datein in 2 verschiedenen verzeichnisse kopierne lassen, das bräucht ich nämlich (mp3s + playlists).
bild mit skalierbarer größe und fortschrittbalken wär natürlich auch easy ;).

Blackangel:
Ich verweise mal ganz dezent auf folgenden Threat:
Robocopy automatisieren

DeASI:
So, ich habe es leider nicht mit dem Programm USBUPD geschafft, meine alten Playlisten von den neuen ersetzten zu lassen. Ich will das Programm jetzt nicht schlecht reden, nur eine Alternative emphelen, falls USBUPD nicht reicht. Ich hab jetzt ein anderes Programm gefunden und zwar AutoRunnerX: http://www.usb-stick-software.de/tools/autorunnerx/
Damit kann man jedes beliebige Programm starten, sobald der USB-Stick angesteckt wird.
