Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


SergioBS,
Попробуйте вариант удаления старых версий. Для боевой работы уберите красное Echo
Код: Выделить весь код
@Echo Off
Cls
	Set "BoxIn=WinSoft"

	Set "SpisD="
	Set /A N=1
	Set "@@D%N%=A"
	FOR /F "usebackq tokens=1 skip=1 delims=:" %%i IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
		Call Set /A N+=1
		Call Set "@@D%%N%%=%%i" 
		Call Set "SpisD=%%SpisD%%%%i"
	)

	CHOICE /C A%SpisD% /M "%SpisD%-select a drive letter,  A-Complete batch file"
	Call Set "DBoxIn=%%@@D%ErrorLevel%%%:\%BoxIn%"
	If %Errorlevel%==1 Exit /B 0
	If Not Exist "%DBoxIn%" (
		Echo Folder "%DBoxIn%" not found
		Pause
		Exit /B 2
	)
	
	FOR /F "usebackq delims=" %%R IN (`2^>nul Dir "%DBoxIn%" /B /A:D`) Do (
		FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%DBoxIn%\%%R" /B /T:C /O:-D /A:D`) Do (
			Call :MyRD "%DBoxIn%\%%R\" %%d
		)
	)
Pause
Exit /B

:MyRD
	Set "Mask=%2"
	:Begin
		If "%4"=="" GoTo :End
		Set "Mask=%Mask% %3"
		Shift /2
	:End
	FOR /F "usebackq skip=1 delims=" %%i IN (`2^>nul Dir "%~1%Mask%*" /B /T:C /O:-D /A:D`) Do Echo Rd /S /Q "%~1%%i"
Exit /B
При наличии красного Echo ничего не удаляется, только отображаются папки, которые необходимо удалить
Распаковку не сделал, не знаю, как в самораспаковывающимуся архиву указать в пакетном файле диск.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 14-01-2020 в 16:47.


Отправлено: 14:57, 14-01-2020 | #13