o0julia0o
Goto Top

Batch soll alle Unterordner durchsuchen, beginnend einem Ordner über ihrem Pfad

Ich möchte mit einer Batch alle Ordner(samt aller Verzeichnistiefen) nach einer Datei durchsuchen. Dort soll dann etwas hinkopiert werden.

Ich kann das Verzeichnis, wo die Batch(Test\#Im) liegt ja definieren =%~dp0.
Dann kann ich mit .. ja einen Ordnerbaum höher wechseln.

Dort muss ich dann alle Ordner samt Unterordnern durchsuchen. Jedoch wird auch immer der #Im-Ordner mitdurchsucht. Genau das möchte ich aber nicht.

Es soll nur der Ordner Test und all seine Unterordner durchsucht werden. Bis auf einen Unterordner: #Im.

Wie stelle ich das an?

lieben Dank!

Content-ID: 671650

Url: https://administrator.de/forum/batch-soll-alle-unterordner-durchsuchen-beginnend-einem-ordner-ueber-ihrem-pfad-671650.html

Ausgedruckt am: 27.02.2025 um 16:02 Uhr

TK1987
TK1987 26.02.2025 aktualisiert um 23:20:46 Uhr
Goto Top
Moin Julia,

@echo off

set "searchFile=test.txt"  

for /f "delims=" %%A in ('2^>nul dir /s /b /a-d "%~dp0..\%searchFile%" ^| find /v "%~dp0"') do (  
  REM Kopiere hier was auch immer nach %%~dpA
)

Gruß Thomas
o0Julia0o
o0Julia0o 27.02.2025 um 13:41:25 Uhr
Goto Top
Dankeschön TK1987!

@echo off

set "sourceDir=%~dp0GB"  
set "searchFile=test.txt"    

for /f "delims=" %%A in ('2^>nul dir /s /b /a-d "%~dp0..\%searchFile%" ^| find /v "%~dp0"') do (    
copy /Y "%sourceDir%\*.* %%~dpA  
)
pause
exit

Das erhalte ich von der Kommandozeile zurück:
"Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
0 Datei(en) kopiert."

Kopiert wird dann natürlich nix.
TK1987
TK1987 27.02.2025 um 17:19:41 Uhr
Goto Top
Zitat von @o0Julia0o:
copy /Y "%sourceDir%\*.* %%~dpA  
Das erhalte ich von der Kommandozeile zurück:
"Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
0 Datei(en) kopiert."
Am Ende des Quellpfades fehlen die abschließenden Anführungszeichen. Zudem solltest du auch den Zielordner in Anführungszeichen setzen, damit das Ganze auch bei Leerzeichen im Pfad funktioniert.
copy /Y "%sourceDir%\*.*" "%%~dpA"