xmax67821
Goto Top

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

Content-Key: 131999

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

Printed on: April 25, 2024 at 02:04 o'clock

Member: Biber
Biber Dec 19, 2009 at 13:08:32 (UTC)
Goto Top
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
Member: xmax67821
xmax67821 Dec 19, 2009 at 13:15:05 (UTC)
Goto Top
Also
ich möchte eine datensicherung duchführen
ich möchte aber nicht den unterortner mit duchsuchen sondern mitkopieren
z.B
auf der festplatte c:/
gibt es den ortner xy
der hat den unterortner c:/xy/c
so nun möchte ich eine suche ertellen
wo ich den ortner "xy" suche und anschließend inklusife dem unterortner sichere unter einem bestimten verzeichniss
falls im dem verzeichniss der ortner bereits existiert soll er ersetzt werden
geht das?
danke im Vorhinaus
Member: Biber
Biber Dec 19, 2009 at 13:46:41 (UTC)
Goto Top
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:
  • 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
Member: xmax67821
xmax67821 Dec 19, 2009 at 13:56:55 (UTC)
Goto Top
ja du verstehst dass richtig
Unterortner name "x"
er soll einfach mitkopiert werden
danke im vorhinaus
Member: rubberman
rubberman Dec 19, 2009 at 15:04:15 (UTC)
Goto Top
Hallo xmax67821,

mit den Optionen von XCOPY hab ich mich auch etwas gestritten.
Funktionieren sollte die betreffende Zeile aber etwa in der Form:
xcopy %Quelle% %Ziel% /c /q /i /e /y 

Grüße
rubberman
Member: xmax67821
xmax67821 Dec 19, 2009 at 15:09:01 (UTC)
Goto Top
hei
und thx
doch der obere batch code
funktioniert
nur isch möcht statt dem verzeichniss als quelle eine suche benutzen
um ortner zu suchen und anschließend sofort zu kopieren
lg
alex
Member: rubberman
rubberman Dec 19, 2009 at 15:32:45 (UTC)
Goto Top
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.
@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
Member: xmax67821
xmax67821 Dec 19, 2009 at 15:56:56 (UTC)
Goto Top
hi es ist genau dass was ich suche doch leider haut bei mir das mit dem einbinden noch ned hin

@echo off &setlocal
set Ziel=c:\
pushd c:\
for /f "delims=" %%i in ('dir /ad /b /s^|findstr /e /i /l /c:"\xy"') do echo %%i
popd
xcopy %%i %Ziel% /c /q /i /e /y
pause

stimmt das so ?
Member: rubberman
rubberman Dec 19, 2009 at 16:03:39 (UTC)
Goto Top
Nein, weil die Laufvariable %%i außerhalb der Schleife keine Gültigkeit mehr hat.

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>
Member: xmax67821
xmax67821 Dec 19, 2009 at 16:07:33 (UTC)
Goto Top
tshuldige wenn i schowider nerve aber ich bekomme jetzt
die meldung unzulässige Parameteranzahl
lg
alex
Member: rubberman
rubberman Dec 19, 2009 at 16:09:49 (UTC)
Goto Top
Ja, wenn Leerzeichen im Pfad vorkommen. Schau mal mein Edit oben an.

Grüße
rubberman
Member: xmax67821
xmax67821 Dec 19, 2009 at 16:30:42 (UTC)
Goto Top
ok
danke
nur noch eine frage
dise suche wäre schneller wie kann ich hier die kopie einbinden
dir /S /B /A: H S R A \ | FIND /I "xy"
Member: rubberman
rubberman Dec 19, 2009 at 16:43:13 (UTC)
Goto Top
Möglichst gar nicht. Neben Verzeichnissen werden auch Dateien gefunden die Diese Zeichenfolge enthalten.
Als Beispiele:
"c:\irgendwo\yx"
wäre in Ordnung, aber eben auch
"c:\irgendwo\aaayxaaa"
"c:\irgendwo\bbbyx.txt"
"c:\irgendwo\xy\abc"

usw.

Also lass es lieber.

Grüße
rubberman
Member: xmax67821
xmax67821 Dec 19, 2009 at 16:46:02 (UTC)
Goto Top
ok
thx
hey wo hast du das gelernt ?
Member: rubberman
rubberman Dec 19, 2009 at 18:51:03 (UTC)
Goto Top
Learning By Doing face-wink
ähnlich, wie du es auch gerade versuchst.
Und der Befehl HELP tut das, was sein Name sagt.

Grüße
rubberman

PS: setze das Thema auf gelöst, wenn du mit den Antworten zufrieden bist.