|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Удаление файлов и папок по имени |
|
Любой язык - Удаление файлов и папок по имени
|
Новый участник Сообщения: 16 |
Добрый день, помогите пожалуйста, нужен скрипт который бы удалял в конкретной папке все папки, под папки, файлы кроме тех в название которые в начале стоит знак "!"
Удалять должен все папки без знака, даже если внутри него есть файлы и папки со знаком. И еще одно условие: возможность добавить пути до папок и файлов исключения |
|
Отправлено: 11:13, 02-11-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ilfaty:
|
|
Отправлено: 11:22, 02-11-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать пока исключения в родительской папке но в будущем будет и глубоко во вложении
Если глубоко во вложении сделать проблематично, то пускай пока будет исключения в родительской, там надо два файла в исключения засунуть |
Последний раз редактировалось ilfaty, 02-11-2016 в 12:12. Отправлено: 12:05, 02-11-2016 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Вот батник (то есть скрипт надо сохранить в файл с расширением .bat в 866 кодировке при наличии в тексте путей к файлам и папкам на русском языке). Из-за исключений получилось громоздко. Исключениями могут быть как файлы, так и папки целиком. Перед обработкой заданной папки исключения переносятся во временную папку, заданная папка обрабатывается, затем в ней восстанавливаются исключения, временная папка удаляется.
@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\Дискета от книги и т д, уровень вложенности папок и файлов исключений любая Не исключаю, что после обработки некоторые папки будут пустыми, я их не удалял, если они соответствуют условию поставленной задачи |
------- Последний раз редактировалось megaloman, 03-11-2016 в 21:21. Причина: Доработка с учетом наличия скрытых, системных и только для чтения файлов Отправлено: 18:49, 03-11-2016 | #4 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать megaloman, Спасибо огромное, после праздников испробую. Вопросик, я сам в скриптовых языках не шарю, на каком написан этот скрипт, какое расширение писать?
|
|
Отправлено: 19:00, 03-11-2016 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:08, 03-11-2016 | #6 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать ок, поставил .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 |
Последний раз редактировалось ilfaty, 03-11-2016 в 20:19. Отправлено: 19:57, 03-11-2016 | #7 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Отработал, вроде все нормаль, но не понятные ошибки все равно остались
E:\Share\Docs11>"E:\Скрипты\Удалить все без знака !.cmd" Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. Не удается найти указанный файл. E:\Share\Docs11> И надо удалять временную папку которая создается в корне диска |
Отправлено: 22:05, 03-11-2016 | #8 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать вот мой батник
|
Отправлено: 22:08, 03-11-2016 | #9 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Все заработала, зашел под логином Администратор, хотя у моей четки тоже полные права админа.
Спасибо огромное |
Отправлено: 10:49, 04-11-2016 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Удаление файлов и папок по списку с выводом результата в файл | Sub-Zero | Скриптовые языки администрирования Windows | 0 | 08-12-2015 23:12 | |
CMD/BAT - [решено] Удаление созданных папок и файлов по времени | zavoruev | Скриптовые языки администрирования Windows | 24 | 22-04-2013 10:36 | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
CMD/BAT - [решено] удаление файлов по маске имени | hlpain | Скриптовые языки администрирования Windows | 4 | 02-09-2011 16:11 | |
CMD/BAT - Удаление старых файлов по имени файлов | Bиктор | Скриптовые языки администрирования Windows | 1 | 19-04-2010 03:37 |
|