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

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

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\~???????.???"
	For %%f In ("%FileIn%") Do Call :OutFirst "%%f" 18 3 24 2
Pause
Exit /B 0

:OutFirst
	Set /P First=<%1
	Call Set "First1=%%First:~%2,%3%%"
	Call Set "First2=%%First:~%4,%5%%"
	Echo %First1% %First2%   %1
Exit /B
Alexeyshka,
Ваш вариант
Код: Выделить весь код
@Echo Off
cls
	For %%i In ("Z:\Box_In\~y??????.???") Do (
		Set /P val=<"%%i"
		Call Set "val1=%%val:~18,3%%"
		Call Set "val2=%%val:~24,2%%"
		Call Echo %%val1%% %%val2%%   %%i
	)
Pause
Exit /B 0
или так:
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion
	For %%i In ("Z:\Box_In\~y??????.???") Do (
		Set /P val=<"%%i"
		Set "val1=!val:~18,3!"
		Set "val2=!val:~24,2!"
		Echo !val1! !val2!   %%i
	)
Pause
Exit /B 0
Если хочется увидеть на экране первую строку, то в Echo её надо взять в кавычки, так как символ "|" служебный
Код: Выделить весь код
		Call Echo %%val1%% %%val2%%   %%i   "%%val%%"
или так:
Код: Выделить весь код
@Echo Off
cls
	For %%i In ("Z:\Box_In\~y??????.???") Do Set /P val=<"%%i" &Call :OutFirst %%val:~18,3%% %%val:~24,2%% %%i
Pause
Exit /B 0

:OutFirst
	Echo %1 %2  %3
Exit /B

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


Последний раз редактировалось megaloman, 14-08-2021 в 08:58.

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

Отправлено: 16:42, 13-08-2021 | #3