Auflisten von Ordnern in CMD, die KEINEN bestimmten Unterordner haben

766
Aryat Mapreh

Ich habe ein Problem, bei dem ich alle Ordner auf einem Laufwerk finden muss, das KEINEN Ordner mit dem Namen "Arg" enthält. Ich weiß, wie man es mit DIR umkehrt, dh alle Unterordner mit einem bestimmten Namen finden. Aber da ich das Gegenteil brauche, verlasse ich mich auf die Weisheit der Superuser, um mir zu helfen.

Vielen Dank.

0

2 Antworten auf die Frage

0
Gombai Sándor

enter image description here

Wenn Sie ein rekursives Verzeichnis ausführen und seine Ausgabe in eine Datei umleiten können, sind Sie bereits halbwegs fertig. Der Rest kann mit dem Befehl find ausgeführt werden, der nach Zeilen sucht, die die angegebene Zeichenfolge enthalten oder nicht enthalten.

Hier habe ich meine Verzeichnisse in mydirs.lst aufgelistet. Zuerst habe ich nach Verzeichnissen gesucht, die den String "Links" enthalten, dann habe ich das Gegenteil gemacht, indem ich die Option / v verwendet habe.

Kannst du auf der Liste einen gewissen Unterschied machen, um herauszufinden, welche Ordner es hat und nicht? Aryat Mapreh vor 8 Jahren 0
0
jimbobmcgee

Ich denke FOR/ IF NOT EXISTsind deine Freunde, in diesem Fall ...

Für sofortige Unterordner des aktuellen Ordners ...

for /d %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA 

Oder rekursiv aus aktuellem Ordner runter ...

for /d /r %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA 

Oder rekursiv von einem bestimmten Pfad ...

for /d /r X:\pathto %A in (*) do @if not exist "%~fA\Arg\*" echo %~fA 

Umgekehrt...

for /d %A in (*) do @if exist "%~fA\Arg\*" echo %~fA for /d /r %A in (*) do @if exist "%~fA\Arg\*" echo %~fA for /d /r X:\pathto %A in (*) do @if exist "%~fA\Arg\*" echo %~fA 

In einer Batchdatei müssten Sie das %Symbol ...

for /d %%A in (*) do @if exist "%%~fA\Arg\*" echo %%~fA for /d /r %%A in (*) do @if exist "%%~fA\Arg\*" echo %%~fA for /d /r X:\pathto %%A in (*) do @if exist "%%~fA\Arg\*" echo %~fA  for /d %%A in (*) do @if not exist "%%~fA\Arg\*" echo %%~fA for /d /r %%A in (*) do @if not exist "%%~fA\Arg\*" echo %%~fA for /d /r X:\pathto %%A in (*) do @if not exist "%%~fA\Arg\*" echo %~fA 

Wenn Sie es regelmäßig machen, vielleicht ein Makro ...

doskey nosubdir=for /d %A in (*) do @if not exist "%~fA\$*\*" echo %~fA doskey nosubdirrec=for /d /r %A in (*) do @if not exist "%~fA\$*\*" echo %~fA ... cd /d x:\pathto nosubdir Arg nosubdirrec Arg