
56921
05.11.2007, aktualisiert um 15:26:09 Uhr
FOR über alle Verzeichnisse AUSSER...
Hallo,
ich komme bei folgendem Problem nicht weiter und bin für ein paar Anregungen dankbar.
Ich will alle Unterverzeichnisse, die sich in einem Verzeichnis befinden, zippen, ausser die Verzeichnisse, die mit einem Underline (_) anfangen.
Bis hierhin bin ich schon mal gekommen:
FOR /D %%i IN (c:\temp\*) DO SET DIR_LIST=!DIR_LIST!,"%%i"
ENDLOCAL & SET DIR_LIST=%DIR_LIST%
Die _-Verzeichnisse wollte ich mit FINDSTR /R /C:"^[^_]" ausschließen, aber das matcht aus irgendeinem Grund nicht?!
Hat noch jemand ne andere Idee?
Danke & Gruß,
Carsten
ich komme bei folgendem Problem nicht weiter und bin für ein paar Anregungen dankbar.
Ich will alle Unterverzeichnisse, die sich in einem Verzeichnis befinden, zippen, ausser die Verzeichnisse, die mit einem Underline (_) anfangen.
Bis hierhin bin ich schon mal gekommen:
FOR /D %%i IN (c:\temp\*) DO SET DIR_LIST=!DIR_LIST!,"%%i"
ENDLOCAL & SET DIR_LIST=%DIR_LIST%
Die _-Verzeichnisse wollte ich mit FINDSTR /R /C:"^[^_]" ausschließen, aber das matcht aus irgendeinem Grund nicht?!
Hat noch jemand ne andere Idee?
Danke & Gruß,
Carsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72729
Url: https://administrator.de/forum/for-ueber-alle-verzeichnisse-ausser-72729.html
Ausgedruckt am: 14.03.2025 um 22:03 Uhr
5 Kommentare
Neuester Kommentar
Moin carsten-h,
und die Strategie, die Du meintest, würde sich in etwa so lesen:
[Proof-of-concept am CMD-Prompt]
Bzw mit und ohne DelayedExpansion im Batch:
[ungetestete Skizzen]
Gruß
Biber
und die Strategie, die Du meintest, würde sich in etwa so lesen:
[Proof-of-concept am CMD-Prompt]
>for /d %i in (*) do @for /f "delims=" %i in ('echo %i^|findstr "^_"') do @echo set DIR_LIST=!DIR_LIST!;"c:\temp\%~i"
set DIR_LIST=!DIR_LIST!;"c:\temp\_even older dir"
set DIR_LIST=!DIR_LIST!;"c:\temp\_oldDir"
Bzw mit und ohne DelayedExpansion im Batch:
::---- Mit DelayedExpansion
@echo off & setlocal EnableDelayedExpansion
Set DIR_LIST=
:: [....ergänzen: Wechseln ins "richtige" Verzeichnis, z.B. "c:\temp"]
for /d %%i in (*) do for /f "delims=" %%i in ('echo %%i^|findstr /v "^_"') do set DIR_LIST=!DIR_LIST!;"c:\temp\%%~i"
::---- Ohne DelayedExpansion
@echo off & setlocal
Set DIR_LIST=
:: [....ergänzen: Wechseln ins "richtige" Verzeichnis, z.B. "c:\temp"]
for /d %%i in (*) do for /f "delims=" %%i in ('echo %%i^|findstr /v "^_"') do call setDIR_LIST "%~i"
echo %DIR_LIST%
goto :eof
:setDIR_LIST
Set DIRLIST=%DIR_LIST%;"c:\temp\%~1"
goto :eof
Gruß
Biber