Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Требуется помощь по удалению...

Ответить
Настройки темы
CMD/BAT - Требуется помощь по удалению...

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, уважаемые.
Возможно, проблема тривиальна, но самому не дойти до решения.
Есть папка Users, в ней папки с именами пользователей, в них, естественно еще куча подпапок и файлов. Требуется с помощью bat файла удалить определенные файлы во всех корневых папках пользователей, не затрагивая их подпапки. Только в корневых папках пользователей. То есть, к примеру, в папке C:\Users\Vasia удалить файлы с расширением txt, не затрагивая подпапки C:\Users\Vasia\Documents, C:\Users\Vasia\Desktop и т.д.
Учитывая, что пользователей около трех сотен, и имена у них разные, надо это как то автоматизировать.
"Del /s" в моем случае не подходит, так как удаляет файлы во всех вложенных папках, а не только в корневой каждого пользователя.

Отправлено: 21:02, 10-12-2018

 

Ветеран


Contributor


Сообщения: 1460
Благодарности: 849

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=C:\Users"
	Set "Box2=AppData"
	Set "DelFile=*.txt"

	FOR /F "usebackq delims=" %%u IN (`Dir /A:D /B "%BoxIn%"`) DO (
		If Exist "%BoxIn%\%%u\%Box2%" (
			Echo === "%BoxIn%\%%u\%DelFile%" 
			Dir /B /A:-D "%BoxIn%\%%u\%DelFile%"
		)
	)
Pause
GoTo :Eof
Для боевой работы замените Dir /B /A:-D на Del

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 21:45, 10-12-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, работает.
А зачем включена переменная AppData? Просто, чтобы убедиться, что каталог действительно пользовательский а не левый?

Последний раз редактировалось ILMagus, 10-12-2018 в 23:07.


Отправлено: 22:57, 10-12-2018 | #3


Ветеран


Сообщения: 753
Благодарности: 255

Профиль | Отправить PM | Цитировать


megaloman, а чего не перебрать файлы по путям переменной %Userprofile%

Отправлено: 15:51, 11-12-2018 | #4


Ветеран


Contributor


Сообщения: 1460
Благодарности: 849

Профиль | Отправить PM | Цитировать


alpap,
Цитата alpap:
а чего не перебрать файлы по путям переменной %Userprofile% »
Для активного пользователя мне понятно. Но я не умею (увы мне!) иначе найти профили всех пользователей на одном компьютере, если их несколько. А переменная AppData, действительно, Просто, чтобы убедиться, что каталог действительно пользовательский. Возможно, это примитив и не корректно с точки зрения применимости для разных Win

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:49, 11-12-2018 | #5


Ветеран


Сообщения: 753
Благодарности: 255

Профиль | Отправить PM | Цитировать


megaloman,
я просто выразился так, а имел ввиду типа:
Код: Выделить весь код
@echo off
set "d=C:\Users"

for /f "delims=" %%a in ('dir /ad/b "%d%"') do net user|>nul find "%%a"|| echo del /q "%d%\%%a\*"
pause

Отправлено: 18:42, 11-12-2018 | #6


Ветеран


Contributor


Сообщения: 1460
Благодарности: 849

Профиль | Отправить PM | Цитировать


alpap,
Цитата:
....... find "%%a" || echo ......
имхо надо &&

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-12-2018 в 20:33.


Отправлено: 19:24, 11-12-2018 | #7


Ветеран


Сообщения: 753
Благодарности: 255

Профиль | Отправить PM | Цитировать


Цитата megaloman:
надо ... »
не, мы же от этого имени работаем (себя только и найдем как в выводе %Userprofile%)
единственно, если что, то надо ставить в исключение пути:
Скрытый текст

"C:\Users\Administrator"
"C:\Users\All Users"
"C:\Users\Default"
"C:\Users\Default User"
"C:\Users\Public"
"C:\Users\Все пользователи"

но обычно там только папки, файлов нет, ведь в задаче мы не опускаемся ниже первого уровня.

Последний раз редактировалось alpap, 11-12-2018 в 20:33.


Отправлено: 20:25, 11-12-2018 | #8

mwz mwz вне форума

Аватара для mwz

Ветеран


Contributor


Сообщения: 7584
Благодарности: 1834

Профиль | Сайт | Отправить PM | Цитировать


Цитата megaloman:
найти профили всех пользователей на одном компьютере, если их несколько »
А через чтение реестра, анализом
Код: Выделить весь код
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
определить?

-------
Mikhail Zhilin


Отправлено: 20:52, 11-12-2018 | #9


Ветеран


Contributor


Сообщения: 1460
Благодарности: 849

Профиль | Отправить PM | Цитировать


alpap,
Посмотрите
Код: Выделить весь код
dir C:\Users\ /A:D /B 

All Users
Default
Default User
User111111111111111111111
Public
User222222222222222222222
Все пользователи
Ваш скрипт с ||
Код: Выделить весь код
del /q "C:\Users\All Users\*"
del /q "C:\Users\Default\*"
del /q "C:\Users\Default User\*"
del /q "C:\Users\Public\*"
del /q "C:\Users\Все пользователи\*"
Ваш скрипт с &&
Код: Выделить весь код
del /q "C:\Users\User1111111111\*"
del /q "C:\Users\User2222222222\*"
mwz,
Цитата mwz:
А через чтение реестра »
- это надо поработать, предложите решение

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-12-2018 в 22:40.


Отправлено: 22:35, 11-12-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Требуется помощь по удалению...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] нужна помощь по удалению 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




 
Переход