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

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

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

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


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

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


Есть список с путями к файлам и папкам которые нужно удалить. Пример:
Скрытый текст

Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_l_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_l_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_m_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_m_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_s_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_s_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_l_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_l_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_m_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_m_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_s_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_s_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/31_lumber_lm_night
Data/3d/Configs/Particles/31_lumber_lm_night/chassis_effects

Нужно создать .bat который проверяет что в каталоге есть папка Data, если она имеется выполнить удаление файлов и папок по списку txt или log (путь под спойлером).

Отправлено: 21:01, 20-10-2019

 

Ветеран


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

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


Цитата passstrada:
Есть список с путями »
С относительными путями (кстати, почему разделитель путей в формате POSIX?). Осталось понять, относительно чего?

Цитата passstrada:
Пример: »
Ещё лучше будет упаковать «список с путями к файлам и папкам» в архив и приложить к сообщению.

Цитата passstrada:
Нужно создать .bat который проверяет что в каталоге есть папка Data, »
Тот же вопрос — где нужно искать каталог Data? По уму — в текущем каталоге. Но Вам, вероятно, понадобится искать в том каталоге, куда Вы поместите пакетный файл, так?

Цитата passstrada:
выполнить удаление файлов и папок по списку »
Судя по примеру,
  1. Удаление каталога .\Data\3d\Configs\Particles\22_italy_it\chassis_effects не предполагается, так?
  2. Удаление каталога/файла .\Data\3d\Configs\Particles\31_lumber_lm_night\chassis_effects бессмысленно, потому как на предыдущем шаге, согласно списка, должен быть удалён родительский каталог .\Data\3d\Configs\Particles\31_lumber_lm_night. Как Вы это поясните?

Отправлено: 22:21, 20-10-2019 | #2



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

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


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


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

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



Цитата Iska:
С относительными путями (кстати, почему разделитель путей в формате POSIX?). Осталось понять, относительно чего? »
Пути относительные из-за того что каталог может находится у каждого пользователя по разному.
У кого-то на C:\papka\Data у кого-то C:\papka\papka\papka\Data или D:\papka1\papka2\papka3\Data.
filelist.zip
Цитата Iska:
Вам, вероятно, понадобится искать в том каталоге, куда Вы поместите пакетный файл, так? »
Да
Цитата Iska:
Судя по примеру »
1. Да
2. При обновлении каталога. На самом деле это добавилось, мне нужно сделать обратное, удалить то что обновилось.


Сейчас расскажу так что бы было понятней.
Есть допустим программа/игра (portable), при ее обновлении у меня есть список (изменённых файлов, новых файлов и тех файлов которые были удалены). Именно последний список меня и интересует.
Но когда программа/игра не может обновится (нет интернета там и тд. тп.) можно создать свой Update так сказать. Из новых файлов, измененных и в первую очередь - удалением старых в виде списка.
У меня есть относительные пути - но я не пойму как сделать этот uninstall.
Может мне и даже .bat не нужен для удаления по списку. Но я просто подумал что это лучший вариант для его создания и работы со списком.

Отправлено: 23:05, 20-10-2019 | #3


Ветеран


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

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


passstrada, тогда непонятно, зачем удалять каталоги?

Отправлено: 18:09, 21-10-2019 | #4


Ветеран


Contributor


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

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


passstrada,
Цитата Iska:
Вам, вероятно, понадобится искать в том каталоге, куда Вы поместите пакетный файл »
Цитата passstrada:
Может мне и даже .bat не нужен для удаления по списку. »
Сделал тупо, как поставлена задача, не вникая глубоко в смысл
Цитата Iska:
кстати, почему разделитель путей в формате POSIX »
-пришлось силой заменить / на \
Цитата passstrada:
удаление файлов и папок по списку txt или log »
не написали, где этот txt, поэтому список вставил в bat
Код: Выделить весь код
@Echo Off
	Call :Reestr "Spis1====="
Exit /B 0

:Reestr
	FOR /F "usebackq tokens=1* delims=:" %%a IN (`2^>nul FINDSTR /I /L /B /N %1 "%~dpnx0"`) DO (
		FOR /F "usebackq delims=" %%s IN (`2^>nul More +%%a "%~dpnx0"`) DO (
			Echo %%s |Find /I /N %1 >nul 2>&1 &&Exit /B 0
			Call Set "PS=%%~s"
			If Exist "%%~s\" >nul 2>&1 Call Rd "%%PS:/=\%%" /Q /S 
			If Exist "%%~s"  >nul 2>&1 Call Del "%%PS:/=\%%" 
		)
	)
Exit /B

Spis1=====

Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_l_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_l_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_m_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_m_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_s_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_ground_s_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_l_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_l_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_m_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_m_2_dust2.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_s_1_dust.yaml.dvpl
Data/3d/Configs/Particles/22_italy_it/chassis_effects/wave_stone_s_2_dust2.yaml.dvpl

Data/3d/Configs/Particles/31_lumber_lm_night
Data/3d/Configs/Particles/31_lumber_lm_night/chassis_effects

Spis1=====

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


Последний раз редактировалось megaloman, 22-10-2019 в 12:18.

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

Отправлено: 12:09, 22-10-2019 | #5


Ветеран


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

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


Цитата megaloman:
-пришлось силой заменить / на \ »
Необязательно. Пока окончательно POSIX не выпилят, вроде как должно работать и так, и так.

Последний раз редактировалось Iska, 22-10-2019 в 18:07. Причина: Ошибочное заявление.


Отправлено: 17:04, 22-10-2019 | #6


Ветеран


Contributor


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

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


Iska,
Цитата Iska:
вроде как должно работать и так, и так. »
Rd работает, а del нет.

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

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

Отправлено: 17:20, 22-10-2019 | #7


Ветеран


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

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


megaloman, похоже на то.

Отправлено: 18:07, 22-10-2019 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] bat-файл на удаление папок и файлов по списку из txt-файла timahvey Скриптовые языки администрирования Windows 47 04-09-2019 11:49
CMD/BAT - [решено] Удаление файлов по списку и исключения через параметр attrib Stalker_AleX333 Скриптовые языки администрирования Windows 3 27-06-2019 22:08
CMD/BAT - удаление файлов по списку list.txt bidjo Скриптовые языки администрирования Windows 32 12-08-2018 18:24
CMD/BAT - Удаление файлов по списку Freddy1984 Скриптовые языки администрирования Windows 11 04-05-2017 08:36
CMD/BAT - Удаление файлов и папок по списку с выводом результата в файл Sub-Zero Скриптовые языки администрирования Windows 0 08-12-2015 23:12




 
Переход