|
Компьютерный форум 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 | Цитировать |
------- Отправлено: 18:42, 12-12-2018 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать У меня через реестр вообще не показывает новосозданных юзеров, а так показывает:
@echo off set "uspath=Users" :: для WS2003 и т.п. закомментировать строку выше и раскомментировать строку ниже (либо надо делать определение ОС и условие) :: set "uspath=Documents and Settings" for /f "delims=" %%a in ('wmic path Win32_UserAccount get FullName /value^|find "="') do set "%%a"& call :# pause& exit :# if not "%FullName%"=="" net user|>nul find "%FullName%" && echo "%Systemdrive%\%uspath%\%FullName%" exit /b |
Отправлено: 20:13, 12-12-2018 | #22 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать ИМХО, вот это должно работать и в 2003, проверить не на чем
@Echo Off
cls
Set "DelFile=*.txt"
For /f "delims=" %%a In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /F "S-1-5-21-*"') Do (
For /f "Skip=2 tokens=2,* delims= " %%i In ('2^>nul reg query "%%a" /V ProfileImagePath') Do Echo === %%j &Dir /A:-D /B "%%j\%DelFile%"
)
pause
GoTo :Eof
|
------- Последний раз редактировалось megaloman, 12-12-2018 в 22:23. Отправлено: 21:07, 12-12-2018 | #23 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Вообще же, все вещи, связанные с манипуляциями над файлами в профилях пользователей, за редким исключением, должны проводиться logon/logoff-скриптами, привязанными к этим пользователям. |
|
Отправлено: 21:09, 12-12-2018 | #24 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата alpap:
Как и со скриншом из WS2003: там сразу после установки несколько лет назад было создано ещё 4 пользователя. Но они ни разу не логинились, заходят (и то не все) только по ftp, и их профили созданы не были. Исходная же задача — чистить файлы в профилях пользователей; а если профиля нет — то и чистить исходно нечего. Цитата megaloman:
Скрытый текст
c:\TEMP>Set "DelFile=*.txt"
c:\TEMP>For /F "delims=" %a In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof t\Windows NT\CurrentVersion\ProfileList" /F "S-1-5-21-*"') Do (For /F "Skip=2 to kens=3 delims= " %i In ('2>nul reg query "%a" /V ProfileImagePath') Do Echo === %i & Dir /A:-D /B "%i\*.txt" ) c:\TEMP>(For /F "Skip=2 tokens=3 delims= " %i In ('2>nul reg query "HKEY_LOCAL_M ACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1449298 094-4144929868-1542513627-1030" /V ProfileImagePath') Do Echo === %i & Dir /A: -D /B "%i\*.txt" ) c:\TEMP>Echo === C:\Documents & Dir /A:-D /B "C:\Documents\*.txt" === C:\Documents The system cannot find the file specified. c:\TEMP>(For /F "Skip=2 tokens=3 delims= " %i In ('2>nul reg query "HKEY_LOCAL_M ACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1449298 094-4144929868-1542513627-500" /V ProfileImagePath') Do Echo === %i & Dir /A:- D /B "%i\*.txt" ) c:\TEMP>Echo === C:\Documents & Dir /A:-D /B "C:\Documents\*.txt" === C:\Documents The system cannot find the file specified. c:\TEMP>(For /F "Skip=2 tokens=3 delims= " %i In ('2>nul reg query "End of searc h: 2 match(es) found." /V ProfileImagePath') Do Echo === %i & Dir /A:-D /B "%i \*.txt" ) c:\TEMP>pause Press any key to continue . . . |
||
------- Последний раз редактировалось mwz, 12-12-2018 в 22:11. Отправлено: 22:00, 12-12-2018 | #25 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать mwz, Там сложнее: при разборе не было учтено, что "Documents and Settings" содержит пробелы. Исправил. Если можно, протестируйте, пожалуйста.
Кстати, я обычно при отладке при Echo On записываю получившееся в файл способом файл.bat >результат.txt 2>&1 Читабельность лучше. Единственное, если есть пауза, надо на черном экране энтер нажать для завершения батника. |
------- Последний раз редактировалось megaloman, 13-12-2018 в 14:53. Отправлено: 22:25, 12-12-2018 | #26 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
Вот теперь вроде нормально (не знаю только, что за значок появился в результате выполнения команды cls — тут-то его видно не будет, так что приложил скриншот): Скрытый текст
c:\TEMP>cls
c:\TEMP>Set "DelFile=*.txt" c:\TEMP>For /F "delims=" %a In ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /F "S-1-5-21-*"') Do (For /F "Skip=2 tokens=2,* delims= " %i In ('2>nul reg query "%a" /V ProfileImagePath') Do Echo === %j & Dir /A:-D /B "%j\*.txt" ) c:\TEMP>(For /F "Skip=2 tokens=2,* delims= " %i In ('2>nul reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1449298094-4144929868-1542513627-1030" /V ProfileImagePath') Do Echo === %j & Dir /A:-D /B "%j\*.txt" ) c:\TEMP>Echo === C:\Documents and Settings\UpdatusUser & Dir /A:-D /B "C:\Documents and Settings\UpdatusUser\*.txt" === C:\Documents and Settings\UpdatusUser Test.txt c:\TEMP>(For /F "Skip=2 tokens=2,* delims= " %i In ('2>nul reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1449298094-4144929868-1542513627-500" /V ProfileImagePath') Do Echo === %j & Dir /A:-D /B "%j\*.txt" ) c:\TEMP>Echo === C:\Documents and Settings\Administrator & Dir /A:-D /B "C:\Documents and Settings\Administrator\*.txt" === C:\Documents and Settings\Administrator Test1.txt c:\TEMP>(For /F "Skip=2 tokens=2,* delims= " %i In ('2>nul reg query "End of search: 2 match(es) found." /V ProfileImagePath') Do Echo === %j & Dir /A:-D /B "%j\*.txt" ) c:\TEMP>pause Press any key to continue . . . c:\TEMP>GoTo :Eof |
|
------- Отправлено: 22:55, 12-12-2018 | #27 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата mwz:
Кстати, что за хост на скриншоте? |
||
Отправлено: 23:42, 12-12-2018 | #28 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Если не на последнем — то это мой домашний серверок. А значок... Проверил исходный текст, хотя мог бы и сразу сообразить это сделать — и увидел, что в вывод действительно ушёл код 0x0C. Ну а значок — это просто такой глиф в шрифте, которым пошла вставка: с номером непечатного символа 000С в рамке. При других шрифтах он и смотрится по-другому (или не виден вообще), поскольку глифы другие. |
|
------- Отправлено: 00:53, 13-12-2018 | #29 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mwz:
явно же не гольная консоль. |
|
Отправлено: 00:55, 13-12-2018 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] нужна помощь по удалению 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 |
|