komilfo
17-01-2018, 23:10
Нужна помощь профессионалов !
Борюсь со скриптом 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
Ошибки те же
Хотел спросить может кто знает как решить проблему? Прикрепил файл.
Борюсь со скриптом 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
Ошибки те же
Хотел спросить может кто знает как решить проблему? Прикрепил файл.