Войти

Показать полную графическую версию : Удаление папок в профайлах пользователей


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й уровень вложенности, я это имею ввиду

Iska
07-11-2016, 14:39
В этом коде — никак. «/s» при dir не имеет возможности ограничения.

alpap
07-11-2016, 16:21
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