seppimontana

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

144260
Lösung 144260 16.06.2020 aktualisiert um 15:06:30 Uhr
Goto Top
@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
SeppiMontana
SeppiMontana 17.06.2020 aktualisiert um 09:24:18 Uhr
Goto Top
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.

Zunächst mal muss ich das Script als Admin ausführen, das ist kein Problem.
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.
Aber wie oben erwähnt, versteckt sich der Ordner noch eine Ebene tiefer...
z.B.
...\Systeme_1S2081__\1S208130XXX\1S208130143
...\Systeme_1S2081__\1S208131XXX\1S208131042
...\Systeme_1S2081__\1S208129XXX\1S208129005

Ich habe aber durch deinen Ansatz meine Lösung gefunden DANKE:

@echo off
set "quelle=V:\SW_Prod\Ablage_Auftraege_SW\Systeme_1S2081__"
set "ziel=D:\sw\auftraege\1S"
set "w=XXX"
:start
cls
set /p "v=Bitte geben sie die Systemnummer ein:"
if "%v%" == "" goto :start
set "u=%v:~0,-3%"
set "quellordner=%quelle%\%u%%w%\%v%"

echo Kopiere Ordner "%quellordner%" nach "%ziel%" ...
robocopy "%quellordner%" "%ziel%\%v%" /E
echo.
choice /M "Wollen sie eine neue Systemnummer eingeben?"
if %errorlevel% == 1 goto :start
144260
144260 17.06.2020 aktualisiert um 09:21:56 Uhr
Goto Top
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.

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.
SeppiMontana
SeppiMontana 17.06.2020 um 09:26:02 Uhr
Goto Top
Ja ich hab ein Netzlaufwerk, da war der Hase begraben...
Danke nochmal.
Hab es durch dich lösen können.