hackse
Goto Top

Ordner nach bestimmten Dateien durchsuchen

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.

Content-Key: 66411

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

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

Member: miniversum
miniversum Aug 16, 2007 at 17:27:55 (UTC)
Goto Top
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
Member: Hackse
Hackse Aug 16, 2007 at 18:45:18 (UTC)
Goto Top
super... genaus das wollte ich.. Hat ebstens geklappt. Ich hab wohl noch einiges zu lernen.. Aber Klasse forum hier
Member: miniversum
miniversum Aug 16, 2007 at 19:38:49 (UTC)
Goto Top
Ist nur ein entwurf. udn wenn ichs so ansehe würde ein
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
Member: Hackse
Hackse Aug 17, 2007 at 15:48:44 (UTC)
Goto Top
alles klar.. Danke face-smile
mfg
Hackse
Hotly discussed
gleixnerdCheck of ZFW Firewallgleixnerd - 5 CommentsjstrickerWireguard VPN on UDM Pro behind Fritzbox - Handshake did not completejstricker - 3 Comments