Ortner suchen und kopieren mit batch befehl
Hi Leute
Ich binn neu hier und habe gleich ein Problem
Also
Ich möchte gerne einen batch befehl erstellen um einen ortner auf meiner festplatte zu suche und diesen anschließend inklusife unterortner in ein bestimmtes verzeichniss zu kopieren
Ich habe mir bereits eine batch erstellt zum kopieren von daten
aber ich benötige eben dass verzeichniss zum kopieren
hier meine batch
@echo off
set Quelle="C:\Dokumente und Einstellungen\\Eigene Dateien"
set Ziel="\m"
echo Kopie
md %Ziel%
xcopy %Quelle% %Ziel% /secify
echo Erledigt!
exit
Ich binn neu hier und habe gleich ein Problem
Also
Ich möchte gerne einen batch befehl erstellen um einen ortner auf meiner festplatte zu suche und diesen anschließend inklusife unterortner in ein bestimmtes verzeichniss zu kopieren
Ich habe mir bereits eine batch erstellt zum kopieren von daten
aber ich benötige eben dass verzeichniss zum kopieren
hier meine batch
@echo off
set Quelle="C:\Dokumente und Einstellungen\\Eigene Dateien"
set Ziel="\m"
echo Kopie
md %Ziel%
xcopy %Quelle% %Ziel% /secify
echo Erledigt!
exit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 131999
Url: https://administrator.de/contentid/131999
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
15 Kommentare
Neuester Kommentar
Moin xmax67821,
willkommen im Forum.
Verrätst du uns auch noch, welchen "Unterordner du suchen willst"?
Und was der Sinn der Aktion ist?
Falls es so etwa ähnliches wie eine regelmäßige Datensicherung sein soll,
dann brauchst ja einen Plan für den Fall, dass es diese und jene Datei schon gibt ("Kollisionen").
Falls es etwas anderes sein soll - hmm, auch dann wäre das Ziel interessant.
Grüße
Biber
willkommen im Forum.
Verrätst du uns auch noch, welchen "Unterordner du suchen willst"?
Und was der Sinn der Aktion ist?
Falls es so etwa ähnliches wie eine regelmäßige Datensicherung sein soll,
dann brauchst ja einen Plan für den Fall, dass es diese und jene Datei schon gibt ("Kollisionen").
Falls es etwas anderes sein soll - hmm, auch dann wäre das Ziel interessant.
Grüße
Biber
Moin xmax67821,
nochmal, nicht weil ich mich um eine Antwort drückenwill, sondern weil es immer noch nicht klar ist...
Ein Batch ist ja nur eine eine Folge von Einzelbefehlen, die zusammengefasst werden, weil sie mehrfach verwendet werden, regelmäßig, automatisch, wiederholbar.
Wenn ich dich richtig verstanden habe, dann ist das, was du "wiederholbar" machen willst:
Soll denn der Name "xy" abgefragt werden? "Bitte Unterordnernamen eingeben?"
Oder als Parameter mitgegeben?
Grüße
Biber
nochmal, nicht weil ich mich um eine Antwort drückenwill, sondern weil es immer noch nicht klar ist...
Ein Batch ist ja nur eine eine Folge von Einzelbefehlen, die zusammengefasst werden, weil sie mehrfach verwendet werden, regelmäßig, automatisch, wiederholbar.
Wenn ich dich richtig verstanden habe, dann ist das, was du "wiederholbar" machen willst:
- mit einem beliebigen Unterordner (der Name kann wechseln)
- der aber unterhalb des "%USERPROFILE%\Eigene Dateien"-Pfad liegt
- diesen Ordner inklusive Unterordner in ein "festes" Zielverzeichnis kopieren (ggf. vorhandene ersetzen)
Soll denn der Name "xy" abgefragt werden? "Bitte Unterordnernamen eingeben?"
Oder als Parameter mitgegeben?
Grüße
Biber
Probier erst mal diesen Schnipsel. Für das Beispiel wird die gesamte Festplatte C: nach dem Verzeichnis xy abgesucht (läuft natürlich entsprechend lange). Wenn es das ist, was du suchst, kannst du die Laufvariable %%i anschließend in den xcopy -Befehl einbinden.
Grüße
rubberman
@echo off &setlocal
pushd c:\
for /f "delims=" %%i in ('dir /ad /b /s^|findstr /e /i /l /c:"\xy"') do echo %%i
popd
pause
Grüße
rubberman
Nein, weil die Laufvariable %%i außerhalb der Schleife keine Gültigkeit mehr hat.
Also etwa so (ungetestet):
Grüße
rubberman
<edit>Anführungszeichen hinzu</edit>
Also etwa so (ungetestet):
@echo off &setlocal
set Ziel=c:\
for /f "delims=" %%i in ('dir /ad /b /s c:\^|findstr /e /i /l /c:"\xy"') do (
echo %%i wird kopiert
xcopy "%%i" "%Ziel%" /c /q /i /e /y
)
pause
Grüße
rubberman
<edit>Anführungszeichen hinzu</edit>