CMD/BAT - удалить из директории все папки, кроме папок указанных
-
DUNAEV78
CMD/BAT - удалить из директории все папки, кроме папок указанных
Ребята Здравствуйте! помогите чайнику с таким вопросом, требуется удалить батником из директории где он и лежит, все папки независимо от того пустая она или нет, кроме папок с именем "оплата" и "реклама", буду признателен, заранее спасибо!
-
DUNAEV78
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
alpap, а если chcp 1251, да ну в прочем, работает, только удаляются все папки, а мне требуется удалять все папки кроме /c:"ОПЛАТА" /c:"РЕКЛАМА", простите если неправильно поясняю, "чайник" одним словом.
-
DUNAEV78
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
DJ Mogarych, спасибо за отклик, НО у меня такой вопрос по путям, D:\temp\123 - у меня папка меняется каждый раз имя где лежит сам батник, наверное я думаю что будет удобнее указать относительный путь, а как это сделать? или может вообще не указывать?
-
DJ Mogarych
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
Цитата DUNAEV78:
у меня папка меняется каждый раз имя где лежит сам батник
ничего не понял
D:\temp\123 - это путь, где лежат папки оплата и реклама
у меня папка меняется каждый раз имя где лежит сам батник
CMD/BAT - удалить из директории все папки, кроме папок указанных
ничего не понял
D:\temp\123 - это путь, где лежат папки оплата и реклама
-
DJ Mogarych
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
DJ Mogarych, Имя папки где находится сам батник, и лежат эти папки "оплата" и "реклама", меняется постоянно имя, вот поэтому я и обратил внимание по поводу относительных путей!
-
DUNAEV78
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
DJ Mogarych, Имя папки где находится сам батник, и лежат эти папки "оплата" и "реклама", меняется постоянно имя, вот поэтому я и обратил внимание по поводу относительных путей!
-
megaloman
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
Код:
Скрипт сохранить в 866 кодировке. Echo %Ex% &Pause отладочная строка, чтобы Вы могли убедиться, что скрипт сохранён в нужной кодировке: имена папок-исключений должны читаться.
Echo перед RD в боевом варианте надо убрать.
Сейчас подпапки будут удаляться в папке со скриптом
В принципе, можно указать иной другой путь
Set "BoxIn=Z:\Box_In" а Set "BoxIn=%~DP0" при этом необходимо удалить
Код: Выделить всё
@Echo Off
cls
rem Set "BoxIn=Z:\Box_In"
Set "BoxIn=%~DP0"
Set Ex="оплата" "реклама"
Echo %Ex% &Pause
Pushd "%BoxIn%" &&FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /A:D`) DO Call :SomeDel "%%d" %Ex%
Popd
Pause
Exit /B 0
:SomeDel
If "%~2"=="" (Echo Rd /S /Q %1 &Exit /B 0)
If /I "%~2"=="%~1" Exit /B 1
Shift /2
GoTo :SomeDelСкрипт сохранить в 866 кодировке. Echo %Ex% &Pause отладочная строка, чтобы Вы могли убедиться, что скрипт сохранён в нужной кодировке: имена папок-исключений должны читаться.
Echo перед RD в боевом варианте надо убрать.
Сейчас подпапки будут удаляться в папке со скриптом
В принципе, можно указать иной другой путь
Set "BoxIn=Z:\Box_In" а Set "BoxIn=%~DP0" при этом необходимо удалить
-
DUNAEV78
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
Цитата DUNAEV78:
подкупает строка
Цитата DUNAEV78:
коротко и скромно
тоже надо в одну строку?
Код:
если только папки надо удалять, то ...dir /ad/b...
и убрать в конце ...>nul 2>&1 del /q "%%a"&
подкупает строка
CMD/BAT - удалить из директории все папки, кроме папок указанных
Цитата DUNAEV78:
коротко и скромно
CMD/BAT - удалить из директории все папки, кроме папок указанных
тоже надо в одну строку?
Код:
Код: Выделить всё
@echo off
for /f "delims= eol=" %%a in ('dir /a/b^|findstr /iv /c:"оплата" /c:"реклама" /c:"%~nx0"') do >nul 2>&1 del /q "%%a"& >nul 2>&1 rd /s /q "%%a"
pauseесли только папки надо удалять, то ...dir /ad/b...
и убрать в конце ...>nul 2>&1 del /q "%%a"&
-
alpap
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
HTML код:
странно удаляет все папки , даже те которые не надо
Код: Выделить всё
for /f "delims= eol=" %%a in (^|findstr /iv /c:"оплата" /c:"реклама"') do >nul 2>&1 rd /s /q "%%a"странно удаляет все папки , даже те которые не надо
-
DUNAEV78
Re: CMD/BAT - удалить из директории все папки, кроме папок указанных
HTML код:
странно удаляет все папки , даже те которые не надо
Код: Выделить всё
for /f "delims= eol=" %%a in (^|findstr /iv /c:"оплата" /c:"реклама"') do >nul 2>&1 rd /s /q "%%a"странно удаляет все папки , даже те которые не надо