hackse

Ordner nach bestimmten Dateien durchsuchen

geschlossengelöstFrageBatch, Shell Entwicklung
Hallo, ich woltle meinen PC nach bestimmten Dateien in einem bestimmten ordner durchsuchen. und anschließend verschieben.
Aber heir erstmal mein code (bin erst neu, würde mich über Verbesserungen sehr freuen)

@ECHO OFF
CLS

Setlocal


SET BATCH_DIR=C:\BATCH\
SET ORDNEN=C:\BATCH\ordnen\
SET GEORDNET=C:\BATCH\geordnet\

dir %ORDNEN% /S /A:D /O:N /B>%BATCH_DIR%FOLDERS.TXT 2>nul
for /f "tokens=1*" %%a IN (%BATCH_DIR%FOLDERS.TXT) DO (  
   
  ECHO - %%a
  IF EXIST %%a\*.r* 
  (
   ECHO     ^> ..RARs existieren
   ECHO     ^> ..Dateien werden kopiert
   cd /d  %GEORDNET%
   md %%a
   XCOPY /S /C %%a %GEORDNET%
   rd /s /q "%%a"  
  )
  IF EXIST %ORDNEN%%%a\*.z* (
   ECHO     ^> ..Dateien zum Entpacken exisiteren
   ECHO     ^> ..Verzeichnis und Dateien werden kopiert
   cd /d  %GEORDNET%
   XCOPY /S /C /Q %%a %GEORDNET%
   rd /s /q "%%a"  
   ECHO     ^> ..Altes Verzeichnis wurde geloescht
  )
)

#DEL %BATCH_DIR%FOLDERS.TXT
ECHO Alle Operationen wurden ausgeführt. Es wurden %ANZAHL% Verzeichnisse verschoben.
ECHO Ihre Dateien befinden sich im Ornder: %GEORDNET%
PAUSE
Das script soll also den ordner C:\BATCH\ordnen\ nach .z* und .r* durchsuchen. Dazu habe ich erstmal den ordner mit dir inklusive Utnerverzeichnisse aufgelistet, sodass ich dann n einer txt datei in etwa folgende Eitnräge habe: "C:\BATCH\ordnen\ordner_1\test\1.zip"
Wenn also eine Datei mit der Endung .z* vorhanden ist, soll er den ordner MIT seienr kompletten Struktur in ein neues Verzeichnis kopieren.. also es soll dann so aussehen "C:\BATCH\geordnet\ordner_1\test\1.zip"
Mein script fuznt an dieser Stelle nicht,d a ich nicht weiß, wie ich der abt die Zieldatei angeben soll/kan, da ich in der FOLDERS:TXT Datei einträge mit dem laufwerskbuchstaben habe.
Ich habe mir gedacht, dass ich einfach das C:\BATCH\ lösche, sodass n ur der rest übrig bleibt.. aber auch das bekomme ich nicht hin

Wenn irh mir eine Lösung schreiben könntet, wäre das super entt. Ich würde mich rieseig freuen.. Es wäre auchs chön, wenn ihr mich auf etweilige Fehler aufmerksam machen könntet face-smile
ALso nochmals Danke

mfg
Hackse

[Edit Biber 18.8.2007]
Originaltitel "Ordner anch bestimtmen Dateien durchsuchen" redaktionell angepasst, Beitrag auf "gelöst" gesetzt und geschlossen.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 66411

Url: https://administrator.de/forum/ordner-nach-bestimmten-dateien-durchsuchen-66411.html

Ausgedruckt am: 18.07.2025 um 02:07 Uhr

miniversum
miniversum 16.08.2007 um 19:27:55 Uhr
Hier mal meinen Vorschlag, wenn ich deine Batch richtig verstanden habe, um das ganze etwas kleiner zu gestalten (ungetestet):
@ECHO OFF
CLS

Setlocal


SET BATCH_DIR=C:\BATCH\
SET ORDNEN=C:\BATCH\ordnen\
SET GEORDNET=C:\BATCH\geordnet\

REM Erst alle rar
dir %ORDNEN%*.r* /S /A-D /ON /B>%BATCH_DIR%FOLDERS.TXT 2>nul
for /f "delims=" %%a IN (%BATCH_DIR%FOLDERS.TXT) DO call:domove "%%~dpa"  
REM dann alle zip
dir %ORDNEN%*.z* /S /A-D /ON /B>%BATCH_DIR%FOLDERS.TXT 2>nul
for /f "delims=" %%a IN (%BATCH_DIR%FOLDERS.TXT) DO call:domove "%%~dpa"  
goto:eof

:domove
set "quelle=%1"  
set ziel=%quelle:ORDNEN=GEORDNET%
md %ziel%
xcopy "%quelle%*.*" "%ziel%" /c /s /e /r /v /d /y /i /h /f /o /x  
rd /s /q "%quelle%"  

miniversum
Hackse
Hackse 16.08.2007 um 20:45:18 Uhr
super... genaus das wollte ich.. Hat ebstens geklappt. Ich hab wohl noch einiges zu lernen.. Aber Klasse forum hier
miniversum
miniversum 16.08.2007 um 21:38:49 Uhr
Ist nur ein entwurf. udn wenn ichs so ansehe würde ein
dir "%1" || goto:eof
gleich nach dem
:domove
nicht schaden. sonst kanns zu Fehlermeldungen kommen wenn ein Verzeichnis mehr als eine Datei enthält die diese Endung hat.
Ist aber sicherlich auch noch an anderren stellen verbesserungswürdig.

miniversum
Hackse
Hackse 17.08.2007 um 17:48:44 Uhr
alles klar.. Danke face-smile
mfg
Hackse