CMD/BAT - [решено] Маска для папок

Ответить
Аватара пользователя
Bukinozoid

CMD/BAT - [решено] Маска для папок

Сообщение Bukinozoid »

Я тут уже задавал вопрос, но он был слишком длинный и остался в итоге не решён. Так вот суть: как задать маску для папок находящихся на пути C:\Hello\Yes\111\123\ C:\Hello\No\111\456\ C:\Hello\Help\111\789\ чтобы не перечислять в пути папки yes no help, а задать для них маску и проваливаться в подкаталоги по этой маски.
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Маска для папок

Сообщение megaloman »

Код:

Код: Выделить всё

FOR %%D IN (Yes No Help) DO FOR /F "usebackq delims=" %%i IN (`dir "C:\Hello\%%D\" /b /A:D /S`) DO @Echo %%i

или, в зависимости от Ваших обстоятельств,

Код:

Код: Выделить всё

FOR %%D IN (Yes No Help) DO FOR /F "usebackq delims=" %%i IN (`dir "C:\Hello\%%D\111\" /b /A:D /S`) DO @Echo %%i



Код:

Код: Выделить всё

@Echo Off
FOR /F "usebackq delims=" %%D IN (`dir "C:\Hello\" /b /A:D`) DO (
	FOR /F "usebackq delims=" %%i IN (`dir "C:\Hello\%%D\111\" /b /A:D /S`) DO @Echo %%i
)
Аватара пользователя
Bukinozoid

Re: CMD/BAT - [решено] Маска для папок

Сообщение Bukinozoid »

Первые два не катят, так как папок очень много и смысл маски пропадает, а вот в последний не пойму куда действие запихнуть, чтоб удалялись папки 123, 456 и 789?
Аватара пользователя
Bukinozoid

Re: CMD/BAT - [решено] Маска для папок

Сообщение Bukinozoid »

Если убить все директории ниже 111\, то

Код:

Код: Выделить всё

@Echo Off
FOR /F "usebackq delims=" %%D IN (`dir "C:\Hello\" /b /A:D`) DO (
	FOR /F "usebackq delims=" %%i IN (`dir "C:\Hello\%%D\111\" /b /A:D`) DO Rd C:\Hello\%%D\111\%%i /S /Q
)

Если некоторые определённые, то

Код:

Код: Выделить всё

@Echo Off
FOR /F "usebackq delims=" %%D IN (`dir "C:\Hello\" /b /A:D`) DO (
     Rd C:\Hello\%%D\111\123 /S /Q
     Rd C:\Hello\%%D\111\456 /S /Q
     Rd C:\Hello\%%D\111\789 /S /Q
)

или

Код:

Код: Выделить всё

@Echo Off
FOR /F "usebackq delims=" %%D IN (`dir "C:\Hello\" /b /A:D`) DO (
     FOR %%i IN ("123" "456" "789") DO If Exist "C:\Hello\%%D\111\%%~i" Rd "C:\Hello\%%D\111\%%~i" /S /Q
)

Если конечно не надо иметь жесткой связки Yes-123 No-456 Help-789, в противном случае задача о маске теряет смысл, придётся как-то описывать каждую пару папок.
Аватара пользователя
Bukinozoid

Re: CMD/BAT - [решено] Маска для папок

Сообщение Bukinozoid »

megaloman, спасибо Вам большое!!!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»