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

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

Ветеран


Contributor


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

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


Roman_Norther@vk, ИМХО, загвоздка в if !x!==0
Надо !x!
Мне не нравится конструкция "%%~dpf%"
Последний % лишний
Я бы предпочёл написать set /a x+=1
или set /a x=!x!+1
Мой вариант Вашей задачи, здесь меньше всяких If, труднее погрязнуть в логике
Код: Выделить весь код
@Echo Off
Cls
Set "LogFile=Z:\Result.txt"

Set /P maska="Input mask, please: >"

>"%LogFile%" (
Echo Rezult: Deleted files %maska%
Echo:
)

For %%d In (a b c d e f g h i j k l m n o p q r s t u v w x y z) Do (
	Call :DelFile "%%d:" "%maska%"
	For /f "usebackq delims=" %%f in (`2^>nul Dir /A:D /B /S "%%d:\"`) Do Call :DelFile "%%f" "%maska%"
)
Pause
GoTo :Eof

:DelFile
	Set /A N=0
	For /f "usebackq delims=" %%i in (`2^>nul Dir /A:-D /B "%~1\%~2"`) Do (
		Del /P "%~1\%%i"
		If Not Exist "%~1\%%i" Call Set /a N+=1
	)
	If %N% GTR 0 >>"%LogFile%" Echo Deleted %N% files in directory "%~1\"
GoTo :Eof
Ваш код плохо читается, используйте, пожалуйста, при размещении кода тег Code

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


Последний раз редактировалось megaloman, 25-11-2017 в 20:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:29, 25-11-2017 | #2