Batch Datei auf USB Stick: verschieben?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt eine spezielle Variable, in der das LW steht, von dem aus die Batch gestartet wurde. Die Variable %0 enthält den Batchnamen, und %~d0 expandiert zum LW-Namen, %~dp0 entsprechend zu LW+Pfad. Siehe z.B.

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx

Testbatch auf c:\xx\xx ausgeführt -> %~d0 ist c: ... Testbatch auf USB g:\ ausgeführt -> %~d0 ist g:

Strix333 
Fragesteller
 09.11.2017, 11:50

Ganz genau sowas habe ich gesucht :) Danke!

0

Ja, da gibt es eine Lösung.

Wenn du den USB-Stick einsteckst, gehst du auf "Computer", da wird er dir als Laufwerk angezeigt. Auch der Laufwerksbuchstabe, den er gerade hat.

Folglich kannst du an jedem PC auf den USB-Stick zugreifen, Dateien verschieben, kopieren etc. etc.

Ich hoffe, ich konnte dir helfen :-)

Strix333 
Fragesteller
 09.11.2017, 01:26

Dann müsste ich ja aber jedes mal das F umschreiben in der Batch oder? Diese Lösung wäre dann nicht so schön.

0
corsa678  09.11.2017, 01:31
@Strix333

Nein, eigentlich nicht. F ist ja nur der Laufwerkbuchstabe, der an DEINEM Rechner angezeigt wird. Bei einem anderen PC könnte es dann sein, dass es als: "L:\test.txt" angezeigt wird. Probier es doch einfach mal aus, bevor du die Batch änderst.

Aber ich bin mir eigentllich ziemlich sicher, dass du die Batch nicht umschreiben musst. --- Austesten macht aber den größten Sinn!

0

1. Lösung:

Benutze statt F:\test.txt einen relativen Pfad (Die Batch Datei muss auf deinem USB Stick auf oberster Ebene/im obersten Ordner liegen)

copy "test.txt" "test\test.txt"

2. Lösung 

Finde den Laufwerksbuchstaben anhand des Pfades deiner Batch-Datei heraus (Pfad der Batch ist immer in %0 gespeichert)

set "L=%~d0"

copy "%L%\test.txt" "%L%\test\test.txt"

~Tim

Wir machen so etwas (wenn es wirklich einen Laufwerksbuchstaben in einem Kommando braucht) mit einer Abfrage:

If exist a:\xxx.xxx goto aa
If exist b:\xxx.xxx goto bb 

:aa
copy . a:\xxx.xxx  a:\yyy\
goto end
:bb
copy . b:\xxx.xxx  b:\yyy\

:end
exit

Müssen die Dateien umbedingt auf F sein? C besitzen die meisten pc's, probiers doch einfach mit C. Wenn du aber nur dateien innerhalb des sticks verschieben willst kannst du für batches das root verzeichnis aus dem sie gestarted worden nehmen, guck dir dazu ein paar antworten auf stackoverflow an ich hab das nichtmehr so genau im kopf wie die bezeichnungen sind. :)