27724
Goto Top

Dateien per Drag und Drop kopieren

Hallo,
ich will einen kleinen Job schreiben, der mir per Drag&Drop draufgezogene Dateien&Ordner auf einen USB-Stick kopiert.
Leider hab ich von batch Programmierung überhaupt keine Ahnung und die Infos die ich fionden konnte haben mir nicht wirklich geholfen.
Also so stelle ich mir den Ablauf vor:

for alle_übergebenen_Parameter do
if aktueller_Parameter is Datei
copy aktueller_Parameter f: /Y
else
xcopy aktuellerParameter f:
ende for

Mein Versuch sah bisher so aus:
for %i in (%*) do copy %i f: /Y

Das sollte zumindest Dateien kopieren, tuts aber nicht. Bricht ohne Fehlermeldung ab.

Ich dachte eigentlich das solche Jobs standart sind, aber eine Stunde googeln hat nix gebracht.

mfg
magnet

Content-Key: 29256

Url: https://administrator.de/contentid/29256

Printed on: April 18, 2024 at 03:04 o'clock

Member: miniversum
miniversum Mar 29, 2006 at 16:43:31 (UTC)
Goto Top
versuch mal:
xcopy /E /H %1 f:

miniversum
Member: ITwissen
ITwissen Mar 29, 2006 at 21:35:02 (UTC)
Goto Top
Da wiedermal nicht dransteht, welches Betriebsystem gemeint ist, gehe ich mal davon aus, dass es Windows XP ist.

Mit Windows XP geht das ganz einfach. Du markierst die Dateien, drueckst die rechte Maustaste und gehst zu Senden an. Dort findest du dann auch deinen USB Stick und ein Click und die Dateien sind drauf.
Member: Biber
Biber Mar 30, 2006 at 21:26:13 (UTC)
Goto Top
@ITwissen
Mit Windows XP geht das ganz einfach.
Jo, und falls es ein Win2000 sein sollte, hilft ein im "Senden An" hinterlegter Link auf folgenden formatierten Oneliner:
::---snipp DemoCopyToStick.bat
@Echo off & set "Stick=L"  
For %%i in (%*) do if exist "%%i\*.*" (  
 ECHO Xcopy /i /s /e /y "%%~fi" "%Stick%:%%~pni"  
) Else  ECHO copy "%%~dpnxi" %Stick%:\  
)
Pause
::------snapp DemoCopyToStick.bat

Wenn die Umgebugungvariable %Stick% definiert ist, zeigt dieser Batch, was (Files oder Folders) er wie kopieren würde.

Wenn das passen sollte, würde ich ihn so scharfmachen:
::---snipp CopyToStick.bat
@Echo off & set "Stick=L"  
For %%i in (%*) do if exist "%%i\*.*" (  
 Xcopy /i /s /e /y "%%~fi" "%Stick%:%%~pni"  
) Else  copy /y "%%~dpnxi" %Stick%:\  
)
::------snapp CopyToStick.bat

Geht natürlich auch mit Drag und Drop von Dateien oder Verzeichnissen aus dem Explorer.

Soll im Explorer auch noch ein Kontextmenüpunkt "Copy2Stick" bei rechter Maustaste auftauchen, dann diese (pfad-angepasste) Copy2Stick.reg doppelklicken.
;--------snipp Copy2Stick.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\Shell\Copy2Stick\command]
@="d:\\temp\\copytostick.bat %L"


;---Snapp Copy2Stick.reg

Statt "D:\temp\Copytostick.bat" natürlich den bei Euch gültigen Pfad nehmen.
Der Parameter %L sollte allerdings bleiben.

Hope That Helps
Biber
Member: Biber
Biber Apr 03, 2006 at 18:47:33 (UTC)
Goto Top
@27724

Frage beantwortet? Oder haben wir Dich falsch verstanden? Hilft es?
Kann der Beitrag geschlossen werden?

Gruß Biber
Member: Schmitt.Mathias
Schmitt.Mathias Apr 06, 2006 at 18:14:35 (UTC)
Goto Top
Hi, habs gerade ausprobiert, bei mir jedenfalls funktioniert es einwandfrei.

Gruß
Mathias
Member: Biber
Biber Apr 06, 2006 at 18:22:24 (UTC)
Goto Top
Jau, bei mir auch...
dann setz ich den Beitrag mal auf gelöst.
Schönen Abend allen.

Biber
Member: Schmitt.Mathias
Schmitt.Mathias Apr 06, 2006 at 19:32:49 (UTC)
Goto Top
Hi,

vielleicht sollten wir noch abwarten bis sich "magnet" meldet, ob es bei ihm auch geht.
ansonsten alles in Ordnung.


Gruß
Mathias