Per Batch Datei verschieben

Kega

Cadet 4th Year
Registriert
Jan. 2020
Beiträge
86
Hallo Zusammen,
ich muss per Batch einen Ordner verschieben, bin mir aber nicht so sicher wie ich das machen soll.

Das Problem ist nicht die Verschiebung, sondern den momentanen Pfad zu finden.

Das ganze kommt über einen USB-Stick und soll automatisch in den Programm-Ordner.

Wie kann ich das machen?

Danke für Unterstützung!
 
for /R "D:\test\" %f in (*) do (move %f "C:\test\test")

C: zielverzeichnis
D: usbstick


Normalerweise, wenn es immer der gleiche USB Stick ist. Sollte sich der Laufwerksbuchstabe nicht ändern!

Also test.cmd dort den code einkopieren.
Ach in der Batchdatei müssen es %% sein.
also:
for /R "D:\test\" %%f in (*) do (move %%f "C:\test\test")



1611224778524.png
 
Die Variable %-dp0 enthält den aktuellen Pfad des Scriptes, damit kannst Du also jederzeit den Pfad des Scriptes angeben.
 
Also es funktionert schon ein bisschen. Ich will einen Ordner mit sämtlichen Inhalten KOPIEREN, jetzt ist es so, dass nur die normalen Dateien verschoben werden und die Ordner im Ordner auch nicht.
 
Falls du wirklich Robocopy nutzen möchtest.
https://www.tecchannel.de/a/robocopy-daten-schnell-und-einfach-unter-windows-sichern,2033515,2
(der Code von oben, war normaler "Move" befehl von dos)

Also eher so:
robocopy C:\test\ C:\testtesttest\ /E (siehe hierzu den Link, man kann auch /move für verschieben hinzufügen)
z.B.
Ergänzung ()

robocopy %CD:~0,3%test\ C:\testtesttest\ /E


also %CD:~0,3% ist z.b. = D:\ (mit Echo kannst du es prüfen oder in eine variable sichern)
und test\ ist der weiterte Pfad. z.b. als endergebnis: D:\test\


kannst du z.b. in eine Batchdatei kopieren und dann auf dem usb stick liegen lassen.
der Wert davor nimmt den aktuellen laufwerksbuchstabe vom USB laufwerk wo sich die Datei befindet.
 
@ Kega
würde zusätzlich mit der Umgebungsvariablen %PROGRAMFILES(X86)% arbeiten (Der Programme-Ordner muss nicht immer auf C:\Program Files (x86) sein).

um exemplarisch den Ordner N:\TEST (mit allen enthaltenen Dateien und sämtlichen Unterordnern) nach C:\Program Files (x86)\TEST zu bekommen, kann der Vollständigkeit halber auch zuerst kopiert und danach gelöscht werden ^-^
Code:
@echo off
xcopy /E /I /Y "%~dp0TEST" "%PROGRAMFILES(X86)%/TEST"
rmdir /S /Q "%~dp0TEST"

Die Datei auf den USB-Stick und von dort aus starten.

@ 5clowne Post#7
[ironie]nicht sehr hilfreich. Dann kläre uns doch bitte über die Lösung per Python auf ^-^
Und : was machen, wenn man unter Ophidiophobie leidet? ^-^[/ironie]
 
ryan_blackdrago schrieb:
@ Kega
würde zusätzlich mit der Umgebungsvariablen %PROGRAMFILES(X86)% arbeiten (Der Programme-Ordner muss nicht immer auf C:\Program Files (x86) sein).

um exemplarisch den Ordner N:\TEST (mit allen enthaltenen Dateien und sämtlichen Unterordnern) nach C:\Program Files (x86)\TEST zu bekommen, kann der Vollständigkeit halber auch zuerst kopiert und danach gelöscht werden ^-^
Code:
@echo off
xcopy /E /I /Y "%~dp0TEST" "%PROGRAMFILES(X86)%/TEST"
rmdir /S /Q "%~dp0TEST"

Die Datei auf den USB-Stick und von dort aus starten.

@ 5clowne Post#7
[ironie]nicht sehr hilfreich. Dann kläre uns doch bitte über die Lösung per Python auf ^-^
Und : was machen, wenn man unter Ophidiophobie leidet? ^-^[/ironie]

import shutil

shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")

das ganze Bash, Batch und TCL Zeug ist doch total unleserlich...
 
Hallo,
ich würde mich hier dran hängen und habe folgendes vor.

Ich möchte einen Ordner überwachen und hier alle 10 Minuten die Dateien in einen neuen Ordner kopieren.
Also wir haben ein Rechnungsprogramm, dass die Rechnungen beim versenden/Drucken in einen Ordner ablegt.
Wir nutzen Datev Upload um die Rechnungen dann ins Datev hochzuladen. Soweit kein Problem, da man bei Datev Upload ja auch sagen kann, er soll den Ordner überwachen. Problem dabei ist nur, dass wenn dann jemand die Rechnung noch mal druckt, wir die Rechnung wieder in dem Ordner abgelegt und noch mal in Datev hochgeladen. Was natürlich unbedingt verhindert werden sollte. Das Rechnungsprogramm erkennt wenn die Datei schon mal in dem Ordner ist, und exportiert diese dann nicht, aber Datev löscht die Datei nach dem Upload. Also kam mir die Idee einen zwischen Ordner zu holen. Den Ordner würde ich Rechnungsprogramm nennen, hier werden alle Rechnungen als PDF abgespeichert. Nun würde ich gerne alle neuen Daten in den Ordner Datev_Upload verschieben, aber nur die neuen. Wie mache ich das am besten ? Wenn ich sag Windows soll die Aufgabe alle 5 Minuten durchführen und nur die Daten der letzten 5 Minuten übertragen, bin ich mir nicht sicher, ob das nicht zum Problem wird, wenn die Datei genau beim Start des Programms die 5 Minuten erreicht und vorher noch nicht übertragen wurde. Also so Fehler im Millisekunden Bereich. Hat jemand eine Idee, wie ich das realisieren kann ?
 
Zurück
Oben