PDA

Показать полную графическую версию : [решено] Маска для папок


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

megaloman
07-06-2012, 11:41
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
08-06-2012, 09:26
Первые два не катят, так как папок очень много и смысл маски пропадает, а вот в последний не пойму куда действие запихнуть, чтоб удалялись папки 123, 456 и 789?

megaloman
08-06-2012, 18:51
Если убить все директории ниже 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
09-06-2012, 09:24
megaloman, спасибо Вам большое!!!




© OSzone.net 2001-2012