CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Ответить
 • Просмотры: 1
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Сообщение megaloman »

Код:

Код: Выделить всё

@Echo Off
	Call :DelDir "D:\IS\users\Config" "Test"
	Call :DelDir "D:\IS\users\Home"   "Test"
	Call :DelDir "D:\IS\users\Temp"   "Test"
Exit /B
:DelDir
	If Not Exist "%~1" (Echo !!! %1 not found &Exit /B 1)
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /A:D "%~1"`) DO (
		If /I Not "%%~d"=="%~2" Rd /S /Q "%~1\%%d"
	)
Exit /B
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Сообщение megaloman »

pedrosoft, Я правильно понимаю, в D:\IS\users\ есть много папок. В этих папках надо убить все подпапки, корме TEST?

Код:

Код: Выделить всё

@Echo Off
	Set "BoxIn=D:\IS\users"
	Set "Exclude=Test"
	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:D "%BoxIn%"`) DO (
		Call :DelDir "%BoxIn%\%%~f" "%Exclude%"
	)
Exit /B
:DelDir
	If Not Exist "%~1" (Echo !!! %1 not found &Exit /B 1)
	FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /A:D "%~1\"`) DO (
		If /I Not "%%~d"=="%~2" Rd /S /Q "%~1\%%~d"
	)
Exit /B
Аватара пользователя
pedrosoft

Re: CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Сообщение pedrosoft »

megaloman, папок всего 3, просто не хотелось привязываться к их именам. Спасибо, работает!

А чтобы после вашего кода выполнить другой достаточно удалить последнюю команду Exit /B или удалять её в обоих местах?
Аватара пользователя
pedrosoft

Re: CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Сообщение pedrosoft »

Цитата pedrosoft:



А чтобы после вашего кода выполнить другой достаточно удалить последнюю команду Exit /B или удалять её в обоих местах?
CMD/BAT - [решено] Удаление указанных файлов в заданной папке




Низззььяяя нигде!

Структура кода, как и в нормальном языке программирования (с некоторой долей условности):

До первого exit идёт так называемая главная часть программы. Там могут вызываться процедуры, которые определяются ниже. Если что-то дописывать, то там.

После первого exit идёт первая процедура, которая завершается своим exit. Если Вы нарисуете свои процедуры, будьте добры располагать их после любого exit в моём коде.

Конкретно, в главной части оего кода в цикле for вызываем (call) процедуру DelDir.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление указанных файлов в заданной папке

Сообщение Iska »

Цитата pedrosoft:



А чтобы после вашего кода выполнить другой…
CMD/BAT - [решено] Удаление указанных файлов в заданной папке




Располагайте его перед первым exit /b. Либо, действительно, делайте по аналогии отдельную процедуру и вызывайте её из указанного места.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»