Batch zum kopieren von Unterordner in Unterodner
Hallo,
folgendes Problem:
Ich durchsuche folgenden Pfad:
V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\
in diesem Pfad befinden sich folgende Ordner:
1S208126XXX
1S208127XXX
1S208128XXX
usw.
Und in diesen Ordnern sind dann entsprechende Unterordner mit den letzen 3 Ziffern.
z.B. 1S208130143 im Ordner 1S208130XXX
Diesen Unterordner möchte ich kopieren auf einen fixen Speicherort:
D:\sw\auftraege\1S
Am Anfang meiner Batch frage ich nach der Nummer und speichere die Eingabe als Variable. Dabei gehe ich aus das die Eingabe korrekt ist und auch im korrekten Format. Also auch keine Bedingungen. ganz simpel...
Eingabe lautet z.B. 1S208130143
das hab ich so gemacht:
set /p V=Bitte geben Sie die Systemnummer ein:
somit hat die Variable "V" die Nummer 1S208130143 gespeichert, welche den gesuchten Ordnernamen darstellt.
Nun möchte ich diesen Ordner suchen vom Pfad "V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\" aus. Also quasi 2 ebenen darüber.
Den Pfad möchte ich dann als Variable "suchergebniss" speichern. Also benötige ich als Ergebniss: V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\1S208130XXX\1S208130143
Ich hab das nun versucht wie folgt aber das geht nicht:
for /d %%V in ("V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\*") do set "suchergebniss=%%~V"
Durch diesen Befehl speichert er einfach nur den Ordnerpfad mit der höchsten Nummer ab...
(aktuell V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\1S208132XXX)
Danach habe ich vor die Variable suchergebniss in den Befehl Robocopy einzupflegen. Aber soweit komme ich ja nichtmal da ich in die Variable "suchergebniss" nicht den richtigen Inhalt erhalte...
Robocopy %suchergebniss% D:\sw\auftraege\1S\ /E
Danke schon mal an die fleißigen Helfer.
PS: ich bin Endbenutzer und habe NICHTS in Sachen IT gelernt. Bisher hab ich mich an google gehalten aber weiter komm ich nicht...
MfG
Seppi
folgendes Problem:
Ich durchsuche folgenden Pfad:
V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\
in diesem Pfad befinden sich folgende Ordner:
1S208126XXX
1S208127XXX
1S208128XXX
usw.
Und in diesen Ordnern sind dann entsprechende Unterordner mit den letzen 3 Ziffern.
z.B. 1S208130143 im Ordner 1S208130XXX
Diesen Unterordner möchte ich kopieren auf einen fixen Speicherort:
D:\sw\auftraege\1S
Am Anfang meiner Batch frage ich nach der Nummer und speichere die Eingabe als Variable. Dabei gehe ich aus das die Eingabe korrekt ist und auch im korrekten Format. Also auch keine Bedingungen. ganz simpel...
Eingabe lautet z.B. 1S208130143
das hab ich so gemacht:
set /p V=Bitte geben Sie die Systemnummer ein:
somit hat die Variable "V" die Nummer 1S208130143 gespeichert, welche den gesuchten Ordnernamen darstellt.
Nun möchte ich diesen Ordner suchen vom Pfad "V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\" aus. Also quasi 2 ebenen darüber.
Den Pfad möchte ich dann als Variable "suchergebniss" speichern. Also benötige ich als Ergebniss: V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\1S208130XXX\1S208130143
Ich hab das nun versucht wie folgt aber das geht nicht:
for /d %%V in ("V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\*") do set "suchergebniss=%%~V"
Durch diesen Befehl speichert er einfach nur den Ordnerpfad mit der höchsten Nummer ab...
(aktuell V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__\1S208132XXX)
Danach habe ich vor die Variable suchergebniss in den Befehl Robocopy einzupflegen. Aber soweit komme ich ja nichtmal da ich in die Variable "suchergebniss" nicht den richtigen Inhalt erhalte...
Robocopy %suchergebniss% D:\sw\auftraege\1S\ /E
Danke schon mal an die fleißigen Helfer.
PS: ich bin Endbenutzer und habe NICHTS in Sachen IT gelernt. Bisher hab ich mich an google gehalten aber weiter komm ich nicht...
MfG
Seppi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 579508
Url: https://administrator.de/forum/batch-zum-kopieren-von-unterordner-in-unterodner-579508.html
Ausgedruckt am: 30.04.2025 um 10:04 Uhr
4 Kommentare
Neuester Kommentar

@echo off
set "quelle=V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__"
set "ziel=D:\sw\auftraege\1S"
:start
cls
set /p "v=Bitte geben sie die Systemnummer ein:"
if "%v%" == "" goto :start
for /f "delims=" %%a in ('dir /b /s /ad "%quelle%\%v%"') do (
echo Kopiere Ordner "%%a" nach "%ziel%" ...
robocopy "%%a" "%ziel%\%%~nxa" /E /R:1 /W:1 >nul
)
echo.
choice /M "Wollen sie eine neue Systemnummer eingeben?"
if %errorlevel% == 1 goto :start

Zitat von @SeppiMontana:
Hi!
Danke schon mal dafür.
Eine kurze und bündige Schilderung der benutzten Befehle und Optionen wäre nett.
Die kannst du im Netz an jeder Ecke nachlesen.Hi!
Danke schon mal dafür.
Eine kurze und bündige Schilderung der benutzten Befehle und Optionen wäre nett.
Darüber hinaus muss ich leider sagen das es nicht funktioniert.
Wurde hier mit deiner Ordnerstruktur einwandfrei getestet!Zunächst mal muss ich das Script als Admin ausführen, das ist kein Problem.
Nur wenn das die ACLs erfordern.Aber er findet den gesuchten Pfad nicht zum kopieren.
Ich glaube das liegt daran das du den Pfad im Ordner "V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__" suchst.
Nein, das sieht nur so aus , der Suchbegriff hinter dem letzten Backslash wird auch in Unterordnern gesucht weil das dir mit dem Parameter /s versehen ist! Und das funktioniert hier einwandfrei, kann ich dir gerne nen Screenshot von zeigen.Ich glaube das liegt daran das du den Pfad im Ordner "V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__" suchst.