|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Нужен bat-ник для поиска и удаления файлов и папок по части названия файла |
|
CMD/BAT - Нужен bat-ник для поиска и удаления файлов и папок по части названия файла
|
Новый участник Сообщения: 21 |
Профиль | Отправить PM | Цитировать
Здравствуйте.
Нужен bat-ник для поиска и удаления файлов и папок по части названия файла. Подробнее: Есть папка к примеру E:\VW\6.Base_02.2015 (до 40 Гб файл) В ней куча файлов Скрытый текст
Задача: Удалить из этой папки файлы которые содержат в названии символы "fr, da, it, es" ну и типа такого. Одним словом, мне нужно оставить файлы с языками это: ru-RU - русский, en-GB - английский (Великобритания), en-US - английский (США), de-DE - немецкий. С другими языками файлы удалить. Что то, найти в сети не могу что нибудь подобное... |
|
Отправлено: 17:11, 06-10-2017 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Подправил первую строку вашего кода:
@Echo Off SetLocal EnableExtensions rem cd /d "%~dp0" Set "Exclude=*ru-RU* *en-GB* *en-US* *de-DE*" Set "BoxIn=%~dp0" rem Set "BoxIn=%userprofile%\Desktop\ElsaWin" Set "Mask=*.??-??.cab" Set "Log=%userprofile%\Desktop\%~nx0.log" >"%Log%" (FOR %%f IN ("%BoxIn%\%Mask%") DO Call :DelLan "%%f" "%%~nf") GoTo :Eof :DelLan FOR %%e IN (%Exclude%) DO If /I "%~x2"==".%%e" GoTo :Eof Echo Del %1 Del %1 GoTo :Eof Удалил все файлы почему то... |
Последний раз редактировалось oniava, 07-10-2017 в 02:23. Отправлено: 02:17, 07-10-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать Цитата oniava:
Цитата oniava:
Цитата oniava:
Для большего контроля команду del в моих вариантах кода измените Del /F %1 2>&1 |
|||
------- Отправлено: 14:48, 07-10-2017 | #12 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Здравствуйте megaloman.
После замены на Цитата megaloman:
(Вся проблема кода, была в команде на удаление) Код скрипта который использовал: @Echo Off SetLocal EnableExtensions Set "Exclude=ru-RU en-GB en-US de-DE" Set "BoxIn=%~dp0" rem Set "BoxIn=%userprofile%\Desktop\ElsaWin" Set "Mask=*.??-??.cab" Set "Log=%userprofile%\Desktop\%~nx0.log" >"%Log%" (FOR %%f IN ("%BoxIn%\%Mask%") DO Call :DelLan "%%f" "%%~nf") GoTo :Eof :DelLan FOR %%e IN (%Exclude%) DO If /I "%~x2"==".%%e" GoTo :Eof Echo Del %1 Del /F %1 2>&1 GoTo :Eof Но удаление не полное, куча лишних файлов. Вот скрины оставшихся файлов. Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
Скрытый текст
В других папах, файлы могут быть другие, но языки оставить надо именно эти как в скрипте. |
|
Последний раз редактировалось oniava, 08-10-2017 в 00:00. Отправлено: 16:02, 07-10-2017 | #13 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Файлы в папке могут быть разного вида, примерно: saz.N.sv-SE.2CA.cab slp.V.sv-SE#graphics.cab slp.V.nl-NL.cab help..et-EE.cab hs2.N.fi-FI.cab saz.V.es-ES.7P5.cab saz..da-DK.2EE.5P3.cab saz.saz.da-DK.2EE.5P3.cab.da-DK.2EE.5P3.cab saz.saz..da-DK.2EE.5P3.cab.da-DK.2EE.5P3.cab saz.da-DK.cab и т.д. Перед языковыми символами, что спереди что сзади символов может быть ЧТО УГОДНО! {лабуда всякая}et-EE{лабуда всякая}.cab Я даже не знаю что именно, это как сервер мне пришлет... |
|
Последний раз редактировалось oniava, 07-10-2017 в 17:15. Отправлено: 16:22, 07-10-2017 | #14 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать По маске {лабуда всякая}.??-??.{лабуда всякая}.cab удаляются все файлы, кроме исключений
@Echo Off Set "Mask=*.??-??.*cab" Set "Exclude=.ru-RU. .en-GB. .en-US. .de-DE." Set "BoxIn=%~dp0" rem Set "BoxIn=%userprofile%\Desktop\ElsaWin" Set "Log=%userprofile%\Desktop\%~nx0.log" If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%" Call :PushdLog "%Log%" >~Exclude.tmp (For %%e IN (%Exclude%) DO Echo %%e) >"%Log%" (FOR /F "usebackq delims=" %%f IN (`Xcopy "%BoxIn%\%Mask%" "%Tmp%" /Exclude:~Exclude.tmp /S /L`) DO ( If Exist "%%f" Echo Del "%%f" &Del /F "%%f" 2>&1 )) Del ~Exclude.tmp Popd GoTo :Eof :PushdLog Pushd "%~dp1" GoTo :Eof |
------- Отправлено: 17:38, 07-10-2017 | #15 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать А примерно такие то же удалит?
control#51.xml delConfigItem.js elfi.cab slp.V.#graphics.17.cab |
Отправлено: 17:40, 07-10-2017 | #16 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать oniava, Мы разговаривали о файлах типа {лабуда всякая}.??-??.{лабуда всякая}.cab
Файлы с иными масками команды удалять не поступало. Что Вам точно надо? Если надо угрохать все файлы, кроме исключений, укажите маску Set "Mask=*.*" Опишите при этом в батнике корректно путь к папке и, не дай бог, не ставьте батник внутрь этой папки - батник убьет сам себя. И, если можно, окружите скрины в Ваших постах тегом Spoiler /Spoiler, тяжело читать тему. |
------- Последний раз редактировалось megaloman, 07-10-2017 в 17:52. Отправлено: 17:43, 07-10-2017 | #17 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Сейчас опробую Ваш скрипт. На копирование Папки для "опробования скрипта", много времени уходит... |
|
Отправлено: 17:52, 07-10-2017 | #18 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Некоторые остаются. Маска поиска не подходит похоже. slp.N.es-ES#graphics.cab www..hr-HR#llf.cab и т.п. Скоро докачается новый архив у меня, попробую такой вот код: Set "BoxIn=%~dp0" Set "Ext=*.??-*.cab" Set "Exclude=*ru-RU* *en-GB* *en-US* *de-DE*" Set "Log=%userprofile%\Desktop\%~nx0.log" pushd "%BoxIn%" || (pause & exit /b) del "%Log%" 2>NUL set nS=0& set /a nF=0 FOR /f "delims=" %%f IN ('dir /b /a-d %Exclude%') DO set ""%%~nxf"=1" FOR %%f IN ("%BoxIn%\%Ext%") DO if not Defined "%%~nxf" ( del /f /a "%BoxIn%\%%~nxf" &&(>>"%Log%" echo Удалено: "%%~nxf"& set /a nS+=1) ||(>>"%Log%" Не удалено: "%%~nxf" & set /a nF+=1) ) (echo Результат выполнения: echo Удалено файлов: %nS% echo Не удалено файлов: %nF% popd) >> "%Log%" type "%Log%" pause |
|
Отправлено: 20:07, 07-10-2017 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать oniava, как Вам уже сказали выше — убирайте большие скриншоты или их большое количество под тэг «spoiler».
Цитата oniava:
Цитата robocopy.exe /?:
|
||
Отправлено: 21:30, 07-10-2017 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - скрипт по копирвоанию и последующего удаления файлов по маске названия файла | santey007 | Скриптовые языки администрирования Windows | 19 | 22-12-2015 10:43 | |
CMD/BAT - [решено] Нужен bat-ник для поиска и удаления файлов и папок по маске | Nun-Nun | Скриптовые языки администрирования Windows | 14 | 08-11-2014 09:53 | |
CMD/BAT - Создать bat'ник для автоматической очистки папок временных файлов каждые 2 часа | THEDOGG | Скриптовые языки администрирования Windows | 5 | 05-03-2013 18:39 | |
CMD/BAT - [решено] Очень нужен Bat-ник, копирующий всю структуру папок и файлов, чтоб каждый файл занима | GoldenSuslik2 | Скриптовые языки администрирования Windows | 7 | 13-06-2011 15:17 |
|