Показать полную графическую версию : Удаление файлов и папок по имени
Добрый день, помогите пожалуйста, нужен скрипт который бы удалял в конкретной папке все папки, под папки, файлы кроме тех в название которые в начале стоит знак "!"
Удалять должен все папки без знака, даже если внутри него есть файлы и папки со знаком.
И еще одно условие: возможность добавить пути до папок и файлов исключения
Удалять должен все папки без знака, даже если внутри него есть файлы и папки со знаком.
И еще одно условие: возможность добавить пути до папок и файлов исключения »
А в этом случае что приоритетней — исключение где-нибудь глубоко во вложенной папке или наличие ! в родительской?!
пока исключения в родительской папке но в будущем будет и глубоко во вложении
Если глубоко во вложении сделать проблематично, то пускай пока будет исключения в родительской, там надо два файла в исключения засунуть
megaloman
03-11-2016, 18:49
@Echo Off
Set "InDir=Z:\Temp"
Set "Exc="_xcopy.txt" "JS_Host\Дискета от книги" "JS_Host\Из интернета\Листинг 1.htm""
Set "DSave=!%~nx0.tmp"
pushd "%InDir%"
attrib -r -s -h /S /D
Call :TmpRD "%InDir%" "%DSave%" 1
FOR %%E IN (%Exc%) DO Call :Save "%InDir%\%%~E" "%DSave%"
For /F "usebackq delims=" %%D In (`Dir "%InDir%\" /B /S /A:D 2^>nul^|Sort /R`) Do Call :DelDir "%%D"
For /F "usebackq delims=" %%F In (`Dir "%InDir%\" /B /S /A:-D 2^>nul`) Do Call :DelFile "%%F"
Call :Restore "%InDir%" "%DSave%"
Call :TmpRD "%InDir%" "%DSave%"
GoTo :Eof
:TmpRD
RD "%~d1\%~2" /S /Q 2>nul
If "%3"=="1" MD "%~d1\%~2%~pnx1"
GoTo :Eof
:DelDir
Set "DName=%~nx1"
If Not "%DName:~0,1%"=="!" Rd %1 /S /Q
GoTo :Eof
:DelFile
Set "FName=%~nx1"
If Not "%FName:~0,1%"=="!" Del %1
GoTo :Eof
:Save
For /F "usebackq delims=" %%f In (`Dir %1 /B /A:-D 2^>nul`) Do (
If /I %1=="%~dp1%%f" (
Md "%~d1\%~2%~p1" 2>nul
Move /Y %1 "%~d1\%~2%~p1" >nul
GoTo :Eof
)
)
Md "%~d1\%~2%~pnx1" 2>nul
Move /Y "%~1\*.*" "%~d1\%~2%~pnx1\" >nul
For /F "usebackq delims=" %%f In (`Dir %1 /B /S /A:D 2^>nul`) Do (
Md "%%~df\%~2%%~pnxf" 2>nul
Move /Y "%%f\*.*" "%%~df\%~2%%~pnxf\" >nul
)
GoTo :Eof
:Restore
xcopy "%~d1\%~2%~pnx1\*.*" "%~1\" /E /Y >nul
GoTo :EofЗдесь для примера:
Z:\Temp - обрабатываемая папка
Исключения:
_xcopy.txt - файл в обрабатываемой папке, то есть Z:\Temp\_xcopy.txt
JS_Host\Дискета от книги - папка, то есть Z:\Temp\JS_Host\Дискета от книги
и т д, уровень вложенности папок и файлов исключений любая
Не исключаю, что после обработки некоторые папки будут пустыми, я их не удалял, если они соответствуют условию поставленной задачиCделана доработка с учетом наличия скрытых, системных и только для чтения файлов. Перед обработкой все эти атрибуты сбрасываются. Если это не устраивает, придётся радикально переделывать код.
megaloman, Спасибо огромное, после праздников испробую. Вопросик, я сам в скриптовых языках не шарю, на каком написан этот скрипт, какое расширение писать?
на каком написан этот скрипт »
Пакетный файл.
какое расширение писать? »
«.cmd».
ок, поставил .cmd,
Проблемы:
1. В корне диска создается Временная папка и после обработки эта папка не удаляется
2. Что за ошибки, системные файлы удалить не может?
C:\Users\Yusupov.i>"C:\Users\Yusupov.i\Desktop\Удалить все без знака !.cmd"
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти E:\Share\Docs11\desktop.ini
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\! РемГрупп\!Инженер по ОТ
и ТБ\~$ормы выд. СИЗ РемГрупп 2015.docx
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!Гражданская оборона\Thumb
s.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!заявка\Thumbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!Инструктаж по ОТ и ТБ\Thu
mbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!П Р Е З Е Н Т А Ц И Я\Thu
mbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!П Р Е З Е Н Т А Ц И Я\!Ал
маз\Thumbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!ПРИБРЕЖНЫЙ-2\Thumbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!ПРИБРЕЖНЫЙ-2\!Паспорта от
ходов ПР2\Thumbs.db
Не удается найти E:\Share\Docs11\! ИНЖЕНЕР ПО ОТ и ТБ\!Фото\Thumbs.db
Не удается найти E:\Share\Docs11\! Новые формы раскрытия информации 731\Thumbs.d
b
Отработал, вроде все нормаль, но не понятные ошибки все равно остались
E:\Share\Docs11>"E:\Скрипты\Удалить все без знака !.cmd"
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
E:\Share\Docs11>
И надо удалять временную папку которая создается в корне диска
Все заработала, зашел под логином Администратор, хотя у моей четки тоже полные права админа.
Спасибо огромное
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.