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

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

komilfo 17-01-2018 23:10 2792157

Удалить все папки и файлы кроме определенных 2 папок и 2 файлов
 
Вложений: 1
Нужна помощь профессионалов !
Борюсь со скриптом bat

Надо удалить все папки и файлы кроме определенных 2 папок и 2 файлов
Вообщум у меня получилось вот так:

set folder="d:\UUUU\Mp3tag\lang"
set "papka=ru"
set "file=Russian.lng"

for /f "delims=" %%a in ('2^>nul dir/a/b "%folder%"^|find/v "%papka%"^|find/v "%file%"') do >nul 2>&1 del /s /q "%folder%\%%a"& >nul 2>&1 rd /s /q "%folder%\%%a"

В папке "Lang" - есть другие папки и файлы, после выполнения этого кода удаляет но не правильно.
Ошибки:
1. оставляет любую папку или файл в названии которого есть сочетание "ru"
а нужно чтоб осталась всего одна папка "ru" и один файл "Russian.lng"
2. не работает код если файл состоит из 2х слов т.е. с пробелами
также если папка тоже будет иметь 2а слова то тоже скрипт не работает.

Также пробовал решитьт проблему атрибутами
set folder="d:\UUUU\Mp3tag\lang"

attrib +H "%folder%\ru"
attrib +H "%folder%\en"
for /d %%i in ("%folder%\%~1*") do rd /q /s %%i
for /F %%i in ('dir /S /B /AD "%folder%\*"') do attrib -H /S /D %%i

Ошибки те же

Хотел спросить может кто знает как решить проблему? Прикрепил файл.

alpap 18-01-2018 00:52 2792176

Код:

@echo off
set "d=UUUU\Mp3tag\lang"
set "d1=ru"
set "d2=en"
set "f1=Russian.lng"
set "f2=English.lng"

pushd "%d%"
 for /f "delims=" %%a in ('2^>nul dir /b^|findstr /xv /c:"%d1%" /c:"%d2%" /c:"%f1%" /c:"%f2%"') do >nul 2>&1 rd /s /q "%%a"& >nul 2>&1 del /q "%%a"
popd
pause


komilfo 18-01-2018 09:08 2792223

alpap,
Огромное спасибо!
Ваш код отлично работает и идеально справляется с поставленной задчей. Еще раз спасибо.

Тему можно закрывать.


Время: 22:59.

Время: 22:59.
© OSzone.net 2001-