56921
Nov 05, 2007, updated at 14:26:09 (UTC)
4551
5
0
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 72729
Url: https://administrator.de/contentid/72729
Printed on: April 26, 2024 at 21:04 o'clock
5 Comments
Latest comment
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