Показать полную графическую версию : Удаление папок в профайлах пользователей
vasheezloy
07-11-2016, 13:09
задача
Удалить папки с определенным именем, например images, из всех профилей пользователей когда либо логинившихся на компьютер, со всем содержимым внутри.
привязка к смд тк тачка на хп
vasheezloy
07-11-2016, 13:20
а все, не правильно искал по форуму=)
http://forum.oszone.net/thread-189985.html
то что надо было, тему можно удалить
vasheezloy
07-11-2016, 13:50
как можно сократить уровень поиска во вложенных папках?
for /f "tokens=1 delims=" %%D in ('dir "c:\users" /ad /b /s') do rd /q /s "%%D\images" > nul 2>&1
проверяет абсолютно все папки в профайлах, нужно сократить поиск до 3 уровня вложенности
admin\desktop\new_folder
3й уровень вложенности, я это имею ввиду
В этом коде — никак. «/s» при dir не имеет возможности ограничения.
vasheezloy,
если просто надо (без привязки к каккому-то коду), можно так:
@echo off
set "d0=0_uroven"
set "fl=%Userprofile%\Desktop\file.txt"
::tree /f "%d0%">"%fl%"
pushd "%d0%"
for /f "delims=" %%a in ('dir /a/b') do echo %%~dpa%%a>>"%fl%"& 2>nul pushd "%%~dpa%%a"
for /f "delims=" %%a in ('dir /a/b') do echo %%~dpa%%a>>"%fl%"& 2>nul pushd "%%~dpa%%a"
for /f "delims=" %%a in ('dir /a/b') do echo %%~dpa%%a>>"%fl%"
popd
popd
popd
exit /b
Вот содержимое "file.txt":
Структура папок
Серийный номер тома: xxx
C:\USERS\xxx\DESKTOP\0_UROVEN
│ 07.11.2016 13 '25 '33.txt
│
└───1_uroven
│ 07.11.2016 13 '25 '27.txt
│
└───2_uroven
│ 07.11.2016 13 '25 '20.txt
│
└───3_uroven
07.11.2016 13 '25 '14.txt
C:\Users\xxx\Desktop\0_uroven\07.11.2016 13 '25 '33.txt
C:\Users\xxx\Desktop\0_uroven\1_uroven
C:\Users\xxx\Desktop\0_uroven\1_uroven\07.11.2016 13 '25 '27.txt
C:\Users\xxx\Desktop\0_uroven\1_uroven\2_uroven
C:\Users\xxx\Desktop\0_uroven\1_uroven\2_uroven\07.11.2016 13 '25 '20.txt
C:\Users\xxx\Desktop\0_uroven\1_uroven\2_uroven\3_uroven
megaloman
07-11-2016, 19:51
Уровни вложенности 1 2 3
Папки admin\desktop\new_folder
@Echo Off
Set "DelDir=images"
FOR /F "tokens=1,2 delims=\" %%i IN ("%Userprofile%") Do Set "DProf=%%i\%%j"
FOR /F "usebackq delims=" %%i IN (`Dir "%DProf%\" /B /A:D-S-H`) DO (
FOR /F "usebackq delims=" %%j IN (`Dir "%DProf%\%%i\" /B /A:D-S-H`) DO (
If /I "%%j"=="%DelDir%" (
Rd /S /Q "%DProf%\%%i\%%j"
) Else (
FOR /F "usebackq delims=" %%k IN (`Dir "%DProf%\%%i\%%j\" /B /A:D-S-H`) DO (
If /I "%%k"=="%DelDir%" Rd /S /Q "%DProf%\%%i\%%j\%%k"
)
)
)
)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.