photographix
Goto Top

Doppelte for Schleife Variablenverwendung

Olá und hallo zum Freitag Nachmittag,

unter Dateien mit Unterstruktur verschieben hatte ich schon mal ein Problem mit einer Batch Schleife.
Bastla konnte mir gut weiterhelfen. Danke nochmals dafür!!
Nun sind aber noch ein paar Features mehr hinzugekommen und nun weiß ich (wieder) nicht weiter.

Meine for for for Schleife arbeitet problemlos und findet auch die Sachen die ich suche nur kann ich das Ergebnis nicht korrekt weiterverarbeiten.

Die Problemstellung ist folgende:

Finde spezielle Ordner in einer Ordnerstruktur von der nur bestimmte Dinge bekannt sind
kopiere/ verschiebe dann diese Ordner in genau der selben, gefundenen Struktur an einen anderen Pfad (genau dort hängt es)

Mein halbfertiges Script:

@echo off & setlocal

REM net use x: /delete
REM net use x: \\server2\bkp-03$

set "Quelle=z:"  
set "Archiv=d:"  
set "Jahr=2010"  
set "Monat=%Jahr%-04"  
REM set "Tag=%Monat%-01" -> unbekannt Schema 2010-06-??  
REM set "FB=FB_101010" -> unbekannt Schema FB_??????  

for /d %%i in ("%Quelle%\*.*") do (  
	for /d %%t in ("%%i\%Jahr%\%Monat%\*.*") do (  
		for /d %%f in ("%%t\*.*") do (  
			echo xcopy /e /y /r "%%f" "%Archiv%%%~pnxi\%Jahr%\%Monat%\%%t" || >>"%Fehler%" echo %%t  
		)
	)
)
  
REM echo rd /s /q "%%i\%Jahr%\%Monat%" -> noch anzupassen  
REM net use x: /delete


Ergebnis:

xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-16\FB_100417" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-16"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-19\Fam. Handan" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-19"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-19\FB_100420" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-19"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-20\FB_100421" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-20"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-21\FB_100422" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-21"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-22\FB_100426" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-22"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-23\FB_100426" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-23"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-24\FB_100427" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-24"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-26\FB_100427" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-26"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-27\FB_100428" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-27"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-28\FB_100429" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-28"   
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-30\FB_100503" "d:\1419\2010\2010-04\z:\1419\2010\2010-04\2010-04-30"  

PS: ich möchte aber nur die Ordner mit FB* finden und diese in der gefundenen Struktur kopieren

Wunsch:
xcopy /e /y /r "z:\1419\2010\2010-04\2010-04-23\FB_100426" "d:\1419\2010\2010-04\2010-04-23\FB_100426\"  

Content-Key: 148523

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

Printed on: April 24, 2024 at 07:04 o'clock

Member: bastla
bastla Aug 06, 2010 at 15:13:12 (UTC)
Goto Top
Hallo photographix!

Versuch es mit der folgenden Zeile 16:
echo xcopy /e /y /r "%%f" "%Archiv%%%~pnxf\" || >>"%Fehler%" echo %%t
Solange Du in der Zeile 15 *.* verwendest, werden natürlich alle Ordner erfasst ...

Grüße
bastla
Member: photographix
photographix Aug 06, 2010 at 15:40:19 (UTC)
Goto Top
Hiho Bastla

das war genau DER Hinweis

Das Ergebnis
(testen kann ich es erst am Montag - bin schon @home per vpn)

@echo off & setlocal

REM net use x: /delete
REM net use x: \\server2\bkp-03$

set "Quelle=z:"  
set "Archiv=d:"  
set "Jahr=2010"  
set "Monat=%Jahr%-04"  
set "FB=FB_??01??"   

for /d %%i in ("%Quelle%\*.*") do (  
	for /d %%t in ("%%i\%Jahr%\%Monat%\*.*") do (  
		for /d %%f in ("%%t\%FB%") do (  
			echo xcopy /e /y /r "%%f" "%Archiv%%%~pnxf" || >>"%Fehler%" echo %%f  
			echo rd /s /q "%%t"  
		)
	)
)

REM net use x: /delete