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

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

Ветеран


Contributor


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

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


Если без setlocal enabledelayedexpansion то имя папки !--Logs--! воспримется правильно
Тупо переписал Ваш код
Код: Выделить весь код
@Echo Off
cls
	Set "SOFT_version=1.2.3.4"
	For /L %%n in (1,1,100) Do (
		Set /a count_patch+=1
		Call Set "patch_number=%%count_patch%%"
		Call Set "pname=%SOFT_Version%-%%patch_number%%"
		Call Set "path_patch=Z:\SOFT версии\Патчи\%%pname%%"
		Call Set "folder=%%path_patch%%"

Call Echo "%%folder%%"
		Call CD "%%folder%%">nul 2>nul || ( 
			Call Set /a count_patch-=1
			Call msg * Установлено %%count_patch%% фиксов для верcии %SOFT_version%
			Exit /B 1
		)
		Echo установка патча произведена>Z:\!--Logs--!\update_SOFT_fix\%computername%.txt
	)
Pause
Exit /B
Однако, ИМХО, Ваш код можно упростить
Код: Выделить весь код
@Echo Off
cls
	Set "SOFT_version=1.2.3.4"
	For /L %%n in (1,1,100) Do (
		If Not Exist "Z:\SOFT версии\Патчи\%SOFT_Version%-%%n" (
			Set /A count_patch=%%n-1
			Call msg * Установлено %%count_patch%% фиксов для верcии %SOFT_version%
			Exit /B 1
		) 
		Echo установка патча произведена>Z:\!--Logs--!\update_SOFT_fix\%computername%.txt
	)
Pause
Exit /B

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

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

Отправлено: 19:39, 01-09-2020 | #6