Список папок в CMD, не имеющих определенной вложенной папки

У меня проблема, когда мне нужно найти все папки на диске, на котором нет папки с именем "Arg".. Я знаю, как сделать это в обратном направлении, используя DIR, i.e найти все подпапки с определенным именем, но как мне нужно наоборот.. Я полагаюсь на мудрость суперпользователя, чтобы помочь мне.

спасибо.

30
задан Aryat Mapreh
10.12.2022 5:54 Количество просмотров материала 2751
Распечатать страницу

2 ответа

Я думаю FOR/IF NOT EXIST в этом случае ваши друзья...

для немедленного подпапок текущей папки...

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

наоборот...

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 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

если вы делаете это регулярно, возможно, макрос...

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
0
отвечен jimbobmcgee 2022-12-11 13:42

enter image description here

Если вы можете запустить рекурсивный dir и перенаправить его вывод в файл, то вы на полпути. Остальное можно сделать с помощью команды find, которая ищет строки, содержащие или не содержащие данную строку.

здесь я перечислил мои каталоги в mydirs.lst. Сначала я искал каталоги, содержащие строку "Links", затем я сделал обратное, используя параметр /v.

0
отвечен Gombai Sándor 2022-12-11 15:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх