Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление файлов по списку и исключения через параметр attrib (http://forum.oszone.net/showthread.php?t=341064)

Stalker_AleX333 26-06-2019 22:51 2876988

Удаление файлов по списку и исключения через параметр attrib
 
Мне жутко надоело писать портянки-списки файлов на удаление и я решил пойти противоположным путем. Удалять определенные файлы в папке, из которой запускается cmd-шник, а затем удалять все, что есть из подпапки Data, корме файлов из списка-исключения (для чего, временно меняем им атрибуты на "только для чтения"). Вот только не работает эта конструкция нихрена... Таки почему?

Код:

:: Удаление папок настроек сборки и шейдерных пакетов
rd /s /q enbcache enbseries reshade-shaders "Silver Raven mods pack data"

:: Удаление файлов шейдерных пакетов, SKSE64 с dll плагинами, а также readme файлов
del /q dxgi.* d3d11.* d3dcompiler_46e.* d3dx9_42.* enbadaptation.* enbbloom.* enbdepthoffield.* enbeffect.* enbeffectpostpass.* enbeffectprepass.* enblens.* enblocal.* enbseries.* skse64_1_5_3.* skse64_1_5_16.* skse64_1_5_23.* skse64_1_5_39.* skse64_1_5_50.* skse64_1_5_53.* skse64_1_5_62.* skse64_1_5_73.* skse64_1_5_80.* skse64_loader.* skse64_steam_loader.* tbb.* tbbmalloc.* "*.info" Plugins.* Licence.* Readme.* "Readme update.*" "Licence cleaned archives.*" "Readme cleaned archives.*" "Licence Silver Raven mods pack.*" "Readme Silver Raven mods pack.*" "Readme updates Silver Raven mods pack.*"

:: Установка атрибута "только для чтения", для архивов игры
cd Data
attrib +r Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm /d

:: Удаление всего содержимого папки Data
del /s /q *

:: Снятие атрибута "только для чтения", для архивов игры
attrib -r Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm /d


Iska 27-06-2019 04:30 2877008

Цитата:

Цитата Stalker_AleX333
Таки почему? »

1. Таки зачем?
2. Внезапно — после того, как Вы сменили неизвестный текущий каталог на каталог Data:
Цитата:

Цитата Stalker_AleX333
cd Data »

есть некоторое подозрение ;), что внутри него может не найтись ещё один одноимённый каталог, внутри которого Вы пытаетесь удалять:
Цитата:

Цитата Stalker_AleX333
del /s /q Data\* »


Stalker_AleX333 27-06-2019 20:41 2877140

Iska, ок, тупанул. Убрал.

Но attrib все-равно не отрабатывает (ошибка в формате параметра), соответственно удаляется все содержимое (кроме подпапок, их тоже нужно убрать. в одну команду никак не засунуть? объединять с предыдущим rd?).

Код:

:: Удаление папок шейдерных пакетов и настроек\опций сборки
rd /s /q enbcache enbseries reshade-shaders "Silver Raven mods pack data"

:: Удаление файлов шейдерных пакетов, SKSE64 с dll плагинами, а также readme файлов
del /q dxgi.* d3d11.* d3dcompiler_46e.* d3dx9_42.* enbadaptation.* enbbloom.* enbdepthoffield.* enbeffect.* enbeffectpostpass.* enbeffectprepass.* enblens.* enblocal.* enbseries.* "Silver Raven ReShade preset.ini" skse64_1_5_3.* skse64_1_5_16.* skse64_1_5_23.* skse64_1_5_39.* skse64_1_5_50.* skse64_1_5_53.* skse64_1_5_62.* skse64_1_5_73.* skse64_1_5_80.* skse64_loader.* skse64_steam_loader.* tbb.* tbbmalloc.* "*.info" Plugins.* Licence.* Readme.* "Readme update.*" "Licence cleaned archives.*" "Readme cleaned archives.*" "Licence Silver Raven mods pack.*" "Readme Silver Raven mods pack.*" "Readme updates Silver Raven mods pack.*"

:: Установка атрибута "только для чтения", для архивов игры
cd Data
attrib +r Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm "Unofficial HD Audio Project - ENG0.bsa" "Unofficial HD Audio Project - ENG1.bsa" "Unofficial HD Audio Project - ENG2.bsa" "Unofficial HD Audio Project - ENG3.bsa" "Unofficial HD Audio Project - ENG4.bsa" "Unofficial HD Audio Project - RUS0.bsa" "Unofficial HD Audio Project - RUS1.bsa" "Unofficial HD Audio Project - RUS2.bsa" "Unofficial HD Audio Project - RUS3.bsa" "Unofficial HD Audio Project - RUS4.bsa" /d

:: Удаление всего содержимого папки Data
rd /s /q Interface Meshes Scripts SKSE Sound Textures Videos
del /s /q *

:: Снятие атрибута "только для чтения", для архивов игры
attrib -r Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm "Unofficial HD Audio Project - ENG0.bsa" "Unofficial HD Audio Project - ENG1.bsa" "Unofficial HD Audio Project - ENG2.bsa" "Unofficial HD Audio Project - ENG3.bsa" "Unofficial HD Audio Project - ENG4.bsa" "Unofficial HD Audio Project - RUS0.bsa" "Unofficial HD Audio Project - RUS1.bsa" "Unofficial HD Audio Project - RUS2.bsa" "Unofficial HD Audio Project - RUS3.bsa" "Unofficial HD Audio Project - RUS4.bsa" /d


megaloman 27-06-2019 22:08 2877169

Если в папке Data должны остаться перечисленные файлы, в том числе и в подпапках
Код:

@Echo Off
        Set Att=Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm
        Set "Fold=Data"

        FOR %%f IN (%Att%) DO If Exist "%Fold%\%%~f" Attrib +H "%Fold%\%%~f"
        FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%Fold%\" /S /B /A:D`) DO (
                FOR %%f IN (%Att%) DO If Exist "%%d\%%~f" Attrib +H "%%d\%%~f"
        )

        >nul Del "%Fold%\*.*" /S /Q

        FOR %%f IN (%Att%) DO If Exist "%Fold%\%%~f" Attrib -H "%Fold%\%%~f"
        FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%Fold%\" /S /B /A:D`) DO (
                FOR %%f IN (%Att%) DO If Exist "%%d\%%~f" Attrib -H "%%d\%%~f"
        )

Если в папке Data должны остаться только перечисленные файлы, а всё остальное, включая подпапки, должно быть убито
Код:

@Echo Off
        Set Att=Dawnguard.esm Dragonborn.esm HearthFires.esm "Skyrim - Animations.bsa" "Skyrim - Interface.bsa" "Skyrim - Meshes0.bsa" "Skyrim - Meshes1.bsa" "Skyrim - Misc.bsa" "Skyrim - Patch.bsa" "Skyrim - Shaders.bsa" "Skyrim - Sounds.bsa" "Skyrim - Textures0.bsa" "Skyrim - Textures1.bsa" "Skyrim - Textures2.bsa" "Skyrim - Textures3.bsa" "Skyrim - Textures4.bsa" "Skyrim - Textures5.bsa" "Skyrim - Textures6.bsa" "Skyrim - Textures7.bsa" "Skyrim - Textures8.bsa" Skyrim.esm Update.esm
        Set "Fold=Data"

        FOR %%f IN (%Att%) DO If Exist "%Fold%\%%~f" Attrib +H "%Fold%\%%~f"
        >nul Del "%Fold%\*.*" /Q
        FOR %%f IN (%Att%) DO If Exist "%Fold%\%%~f" Attrib -H "%Fold%\%%~f"

        FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%Fold%\" /B /A:D`) DO Rd /S /Q "%Fold%\%%d"



Время: 19:33.

Время: 19:33.
© OSzone.net 2001-