CMD/BAT - [решено] Bat для получения списка файлов каталога.

Аватара пользователя
amel27

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение amel27 »

А как добавить полный путь до файла? С диском чтобы. И записывать только *.xml файлы?
Аватара пользователя
death7lord

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение death7lord »

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



Просьба банальная. В результате использования кода из сообщения 7 (или 4) имеем список файлов из папок и подпапок.



Задача 1. По заданному списку удалить только указанные там файлы. Т.е. он "черный список".

Задача 2. По заданному списку оставить только указанные там файлы. Т.е. он "белый список".



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

Касательно второй задачи - кто-то "переводит" файлы в скрытые\системные, удаляет содержимое папки, возвращает назад атрибуты файлам. А вдруг там изначально файлы с разными атрибутами?



p.s. Простите за попытку оживить "мертвого".
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение megaloman »

death7lord, Что в списоке файлов? Это только имена или с имена с путями? Приложите, пожалуйста, 2 примера этих разноцветных файлов.
Аватара пользователя
death7lord

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение death7lord »

megaloman, имена с неполными путями. Например, вот результат работы кода из 7го сообщения (сам список чуть уменьшен для наглядности):



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

.bat
list.txt
MemTest86_User_Guide_UEFI.pdf
ISO\Memtest86-7.4-pro.iso
ISO\readme.txt
USB\imageUSB.exe
USB\memtest86-pro-usb.img
USB\readme.txt
USB\ReadMe_imageUSB.txt
USB\Help\HTML\cicon9.gif
USB\Help\HTML\cicon_loadindex_ani.gif
USB\Help\HTML\contacting_passmark_software.htm





Хотелось бы два развития - 1. удалить файлы из такого списка, 2. удалить все остальные кроме файлов из списка. Два разных кода!
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение megaloman »

1. удалить файлы из такого списка.

Cписок и батник будут лежать в заглавном каталоге, выше которого "выходить" не нужно.

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
Set "SpisDel=Список удаления.txt" 
>nul 2>&1 (
	FOR /F "usebackq delims=" %%f IN ("%SpisDel%") DO If Exist "%%f" Del /A:R /A "%%f"
	rem Если надо убить пустые папки
	For /F "usebackq delims=" %%d In (`Dir /B /S /A:D 2^>nul^|Sort /R`) Do RD "%%d"
)
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение megaloman »

2. удалить все остальные кроме файлов из списка.

Cписок и батник будут лежать в заглавном каталоге, выше которого "выходить" не нужно.

Сам батник и файл-список удалены не будут

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
Set "Exclude=NoDelete.txt"
If Not Exist "%Exclude%" Exit /B 2
>"~%Exclude%" (
	FOR /F "usebackq delims=" %%f IN ("%Exclude%") DO (Echo :%%f)
	(Echo :%Exclude%)
	(Echo :~%Exclude%)
	(Echo :%~nx0)
)
>nul 2>&1 (
	FOR /F "usebackq delims=" %%f IN (`XCOPY "*.*" "%Tmp%\" /L /S /H /EXCLUDE:~%Exclude%`) DO Del /A:R /A "%%~dpnxf"
	Del "~%Exclude%"
	rem Если надо убить пустые папки
	For /F "usebackq delims=" %%d In (`Dir /B /S /A:D 2^>nul^|Sort /R`) Do RD "%%d"
)
Аватара пользователя
death7lord

Re: CMD/BAT - [решено] Bat для получения списка файлов каталога.

Сообщение death7lord »

megaloman, простите, начался новый сезон рискованного земледелия. Пока проверил второй код - работает. Спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»