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

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

Ответить
Настройки темы
CMD/BAT - [решено] Удалить файлы из папки с рандомным адресом

Аватара для Freem

Старожил


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

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


Изменения
Автор: Freem
Дата: 25-01-2015
Описание: поправка
Добрый день.

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

%APPDATA%\TESTAPP\logs\%рандомное_имя_папки%\ext\ - допустим, нужно удалить отсюда содержимое папки main и файл get.ini

Как будет выглядеть универсальный BAT, учитывая, что %рандомное_имя_папки% меняется.

Отправлено: 16:16, 25-01-2015

 

Ветеран


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

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


Freem, При условии, что папка ext одна в %APPDATA%\TESTAPP\logs
Код: Выделить весь код
@echo off

for /f "tokens=*" %%i in ('dir /b /s /ad "%APPDATA%\TESTAPP\logs\ext"') do pushd "%%i"
del get.ini
rd /s /q main
md main
popd
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:43, 25-01-2015 | #2



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

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


Ветеран


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

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


Freem, о каком именно приложении речь?

Цитата Foreigner:
Freem, При условии, что папка ext одна в %APPDATA%\TESTAPP\logs »
Подозреваю, что нет.

Отправлено: 17:04, 25-01-2015 | #3


Аватара для Freem

Старожил


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

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


Цитата Iska:
о каком именно приложении речь? »
Можно взять в пример браузер Firefox. Имя папки профиля при установке на новую машину всегда разное.
Соотвественно путь будет %APPDATA%\Mozilla\Firefox\Profiles\f6rt55br.default\ext
Цитата Foreigner:
При условии, что папка ext одна в %APPDATA%\TESTAPP\logs »
Их там, увы, предостаточно.

Последний раз редактировалось Freem, 25-01-2015 в 17:19.


Отправлено: 17:12, 25-01-2015 | #4


Ветеран


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

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


Freem, имена папок профилей, в том числе и «по умолчанию», находятся в файле:
Код: Выделить весь код
%APPDATA%\Mozilla\Firefox\profiles.ini
И да — профилей («папок с рандомным адресом») может быть заметно больше одного.

Отправлено: 17:19, 25-01-2015 | #5


Аватара для Habetdin


Автор проектов


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

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


Freem, в файле %appdata%\Mozilla\Firefox\profiles.ini перечислены все профили в виде секций ProfileN с параметром Path - путем к папке. (Плюс параметр IsRelative - относительный ли сей путь). Профиль по умолчанию - с Name=default, но, кажется, имя может быть изменено пользователем.

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:19, 25-01-2015 | #6


Аватара для Freem

Старожил


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

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


Цитата Iska:
И да — профилей («папок с рандомным адресом») может быть заметно больше одного. »
Это я понимаю. Но в моей задаче "профиль" всегда один, но папка имеет разные имена. Ее имя нужно учесть и "пройти" дальше по адресу, применив команды удаления.
В таком случае, можно сделать батник, чтобы он брал имя профиля по умолчанию из profiles.ini и переходил по нужному пути...

Последний раз редактировалось Freem, 25-01-2015 в 18:38.


Отправлено: 17:25, 25-01-2015 | #7


Аватара для Freem

Старожил


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

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


Помогли решить задачку, вот таким образом (на примере с Firefox):

Код: Выделить весь код
@echo off
SetLocal EnableDelayedExpansion
FOR /F "usebackq" %%a IN (%appdata%\Mozilla\Firefox\profiles.ini) DO (
set var=%%a
If Exist "%appdata%\Mozilla\Firefox\Profiles\!var:*Profiles/=!\ " (
rmdir /s /q %appdata%\Mozilla\Firefox\Profiles\!var:*Profiles/=!\extensions
del  %appdata%\Mozilla\Firefox\Profiles\!var:*Profiles/=!\prefs.js
)Else (echo searching...)
)

Отправлено: 00:35, 26-01-2015 | #8


Пользователь


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

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


Скажите пожалуйста,вот смотрите, идея такая:
Если при создании sfx архива прописать %username% то всё ясно...автоматом апределит юзера C:\Users\%username%\AppData\Roaming\Mozilla\Firefox\Profiles\ но как быть с папкой в папке Profiles, у которой обычно рандомное имя? то-есть мне надо чтоб файлы из архива автоматом с заменой извлеклись в конечную папку, имя которой всегда разное..Есть какая-то ещё переменная типа %foldername%?
Тоесть, я запаковываю в sfx (.exe) архив содержимое папки Profiles\3dghetm допустим да, но после чистой установки firefox и первого запуска в папке profiles создаётся папки с уже другим именем понимаете да? и мне надо чтоб sfx архив както определил имя последней папки и распаковал туда всё..Какая есть переменная для конечной неизвестной папки?
Пример: C:\Users\%username%\AppData\Roaming\Mozilla\Firefox\Profiles\%foldername%

Отправлено: 12:11, 28-05-2019 | #9


Ветеран


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

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


Цитата kveresov:
понимаете да? »
нет
Цитата kveresov:
определил имя последней папки »
Создайте на диске C:\ папку "Papka" в ней папку "B" и папку "C"
таким кодом вы найдете конечную папку "C"
Код: Выделить весь код
@echo off
for /f "delims=" %%a in ('dir /ad/b/s "C:\Papka"') do set "d=%%a"
echo %d%
pause
переименуйте папку "C" в "A" и теперь конечной станет "B"
понимаете да?
(и это я уже молчу что конечная она может и по размеру, дате и т.д.)

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

Последний раз редактировалось alpap, 28-05-2019 в 13:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 28-05-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как удалить из папки все файлы определенного размера? Alex_smo Скриптовые языки администрирования Windows 6 29-07-2014 19:50
Разное - какие файлы и папки я могу смело удалить из папки windows fyt Microsoft Windows 2000/XP 6 05-01-2012 18:14
CMD/BAT - [решено] Удалить все файлы из папки кроме нужных Sirimika Скриптовые языки администрирования Windows 16 12-11-2010 10:33
Разное - Как удалить профильные папки из Личной Папки без последствий? Котяр Microsoft Windows 7 0 28-11-2009 20:36
Невозможно удалить некоторые файлы и папки -? Utuwa Лечение систем от вредоносных программ 4 10-05-2009 13:02




 
Переход