|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Требуется помощь по удалению... |
|
CMD/BAT - Требуется помощь по удалению...
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Здравствуйте, уважаемые.
Возможно, проблема тривиальна, но самому не дойти до решения. Есть папка Users, в ней папки с именами пользователей, в них, естественно еще куча подпапок и файлов. Требуется с помощью bat файла удалить определенные файлы во всех корневых папках пользователей, не затрагивая их подпапки. Только в корневых папках пользователей. То есть, к примеру, в папке C:\Users\Vasia удалить файлы с расширением txt, не затрагивая подпапки C:\Users\Vasia\Documents, C:\Users\Vasia\Desktop и т.д. Учитывая, что пользователей около трех сотен, и имена у них разные, надо это как то автоматизировать. "Del /s" в моем случае не подходит, так как удаляет файлы во всех вложенных папках, а не только в корневой каждого пользователя. |
|
Отправлено: 21:02, 10-12-2018 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
Найти в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList все ветви, начинающихся на S-1-5-21 (это SID-ы пользователей, причём тех, кто хотя бы раз залогинился в системе: если пользователь создан, но в систему ни разу не входил — его ключа здесь не будет, как и папки его). И прочитать в каждом из найденных S-1-5-21 значение параметра ProfileImagePath, которое и укажет на папку этого пользователя. Ну и напомню на всякий случай, что SID S-1-5-21-XXXXXXX-XXXXXXXX-XXXXXXXXXXX-500 — это встроенный администратор. Если он в систему не входил — ни ключа, ни папки его профиля тоже не будет создано. |
|
------- Последний раз редактировалось mwz, 11-12-2018 в 23:24. Отправлено: 23:18, 11-12-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
так я делал в таком случае, когда были заданы имена пользователей |
|
Отправлено: 23:44, 11-12-2018 | #12 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать вот, собственно, все имена пользователей исключая текущего админа:
(если брать Name, то будет и имя текущего админа и еще Администратор и Гость) |
Отправлено: 00:06, 12-12-2018 | #13 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать mwz,
@Echo Off
cls
Set "DelFile=*.txt"
For /f "delims=" %%i In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"') Do Call :RegPars "%%i" "%DelFile%"
pause
GoTo :Eof
:RegPars
FOR /F "tokens=4* delims=-" %%a IN (%1) DO If %%a==21 (
For /f "skip=2 tokens=3 delims= " %%p In ('reg query %1 /v ProfileImagePath') Do (
Echo === %%p
Dir /A:-D /B "%%p\%~2"
)
)
GoTo :Eof
|
------- Отправлено: 00:37, 12-12-2018 | #14 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Немного подумал и подсократил
@Echo Off
cls
Set "DelFile=*.txt"
Set "BoxIn=C:\Users"
For /f "tokens=1,2* delims= " %%i In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /S') Do (
If /I "%%i"=="ProfileImagePath" If /I "%%~dpk"=="%BoxIn%\" Echo === %%k &Dir /A:-D /B "%%k\%DelFile%"
)
pause
GoTo :Eof
Может еще подумать?
После поста alpap
@Echo Off cls Set "DelFile=*.txt" Set "BoxIn=C:\Users" For /f "tokens=3 delims= " %%i In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /S /V ProfileImagePath') Do ( If /I "%%~dpi"=="%BoxIn%\" Echo === %%i &Dir /A:-D /B "%%i\%DelFile%" ) pause GoTo :Eof |
------- Последний раз редактировалось megaloman, 12-12-2018 в 14:46. Отправлено: 14:07, 12-12-2018 | #15 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
даже [/v "ProfileImagePath"] можно убрать. |
|
Отправлено: 14:30, 12-12-2018 | #16 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать alpap
find /i "C:\Users" В WS2003, например, этой подстроки в данном разделе нет вообще - при том, что значение ProfileImagePath указывает на правильную папку профиля. |
Отправлено: 15:06, 12-12-2018 | #17 |
fascinating rhythm Сообщения: 6621
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 15:35, 12-12-2018 | #18 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата mwz:
ведь нужны только определенные строки содержащие ProfileImagePath и еще их надо парсить до нужного вывода. |
|
Отправлено: 17:09, 12-12-2018 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 17:19, 12-12-2018 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] нужна помощь по удалению BaiduAn3.0 | gott1990 | Лечение систем от вредоносных программ | 3 | 13-12-2014 22:45 | |
Route/Bridge - [решено] Требуется помощь по распиновке. | Alan Priest | Сетевые технологии | 2 | 15-07-2014 13:29 | |
Требуется помощь по удалению вирусов | swetta | Лечение систем от вредоносных программ | 8 | 21-03-2014 00:45 | |
[решено] Нужна ваша помощь по удалению klpclst.dat | KochkinNV | Лечение систем от вредоносных программ | 25 | 17-04-2012 17:14 | |
All Требуется помощь по 2000 | Ashot | Microsoft Windows NT/2000/2003 | 7 | 07-02-2004 02:36 |
|