Войти

Показать полную графическую версию : [решено] Найти папку


VladoSer
30-08-2021, 13:01
Здравствуйте.
Необходимо создать .bat, пытаюсь написать, но получается не очень


Суть:

Есть предположим такие каталоги:
C:\Users\имя пользователя\AppData\Local\Packages
C:\Windows\SystemApps


В этих каталогах есть папки с именем таким:
То, что выделено красным может иметь другие цифры (тк версия установленного edge может отличаться на разных ПК)
https://i.imgur.com/WoO8wkg.png

Те папки, чье имя начинается на "Microsoft.MicrosoftEdge...." необходимо найти их в указанных каталогах и удалить .

благодарю за любую помощь.

NickM
30-08-2021, 13:09
VladoSer, а разве таким "варварским" способом (https://winitpro.ru/index.php/2015/07/30/kak-udalit-sovremennye-prilozheniya-v-windows-10/) удаляются UWP-приложения из Windows (https://winitpro.ru/index.php/2015/07/30/kak-udalit-sovremennye-prilozheniya-v-windows-10/)?

VladoSer
30-08-2021, 13:14
а разве таким "варварским" способом удаляются UWP-приложения из Windows? »
Здравствуйте, нет, я их вообще твикером удаляю, но остатки все равно есть.

Это как пример, пусть там будет другая папка , с другим каталогом. Я просто хочу понять как сделать такой .bat с поиском по части имени в указанных каталогах и дальнейшем удалением данных папок.

megaloman
30-08-2021, 15:40
@Echo Off
cls
For /F "usebackq delims=" %%d In (`2^>nul Dir "C:\Users\%USERNAME%\AppData\Local\Packages\Microsoft.MicrosoftEdge*" /S /B /A:D`) Do Echo Rd "%%d" /s /q
pause
Exit /B 0
Для реального удаления уберите Echo

DJ Mogarych
30-08-2021, 16:22
VladoSer, удаляйте нормальным способом. Ничего хорошего вы удалением папки не добьётесь, это удаление гланд автогеном как в старом анекдоте.

VladoSer
30-08-2021, 16:36
DJ Mogarych,
Здравствуйте, речь идет именно про папки Edge?

Вообще, как выше сообщалось, хочется не только для этого использовать конструкцию, может пригодится кому либо для удаления большого количества папок по маске.

megaloman,
А если , предположим, известно точное название папки , не ее часть, то как найти ее в каталоге , и удалить ?
Убрать из кода * это?

megaloman
30-08-2021, 16:43
Убрать из кода * это? »Да. Но если известна папка, точное имя подпапки, то зачем искать топор за лавкой? Убивайте стандартной командой:
Rd "Полное имя папки (полный путь\имя)" /S /Q
Посмотрите, может пригодится. (http://forum.oszone.net/thread-349472.html)

VladoSer
30-08-2021, 18:40
megaloman,
Нашел еще вот такой код , он чем то отличается от того, что предложено выше?
cd /d "%LOCALAPPDATA%\Packages"
for /f "delims=" %%i in ('
"dir /ad/b/s "Microsoft.MicrosoftEdge*" 2>nul"
') do (
rd "%%i" /s/q
)

megaloman
30-08-2021, 19:55
VladoSer, В принципе, ничем, если сделаете в командном окне
Echo "C:\Users\%USERNAME%\AppData\Local\Packages"
Echo "%LOCALAPPDATA%\Local\Packages"
и получите одинаковые строки.
Вторая строка в написании короче и универсальнее, она мне нравится больше.
Я тупо без проверки скопировал Ваш путь, так как у меня немного другие пути и я это проделать не могу.
Но мой вариант безопаснее, так как в Dir у меня используется полный путь, а в этом варианте - результат выполнения успешности CD никак не анализируется и при ошибке в указании пути Вы рискуете удалить что-то нужное, что выдаст Dir из непонятно какого места в случае некорректного завершения CD.

DJ Mogarych
30-08-2021, 21:14
речь идет именно про папки Edge? »
Речь идёт о приложениях Windows, которые вы, по всей видимости, удаляете таким способом. Коллега NickM дал ссылки на правильное удаление этих приложений.

Если это просто пример какой-то отвлечённой папки, тогда другое дело.

VladoSer
31-08-2021, 01:33
megaloman,
Благодарю Вас за подробное объяснение и решение моей задачи .
DJ Mogarych,
Папки Edge были как пример , за ссылки NickM спасибо.




© OSzone.net 2001-2012