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

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

Ветеран


Contributor


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

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


Попробуйте. Это решение именно для этой структуры Вашего файла
Код: Выделить весь код
@Echo Off
cls
	SetLocal EnableExtensions,EnableDelayedExpansion 
	CHCP 1251 >nul

	Set  "BoxIn=Z:\Box_In"
	Set "BoxOut=Z:\Box_Out"
	Set "BoxArc=Z:\Box_Arc"

	Set "Mask=incoming*.txt"

	2>nul Md "%BoxOut%"
	2>nul Md "%BoxArc%"

	Call :Replacement

	FOR %%f IN ("%BoxIn%\%Mask%") DO (
		Echo ========= "%%f"
		>"%BoxOut%\%%~nxf" (FOR /F "usebackq tokens=1,2,3,4,5,6,7,8,9,10 delims=;=" %%i IN ("%%f") DO (
			Set "ssl=%%l"
			Set "ssn=%%n"

			Call :Substitute "ssl" "%%%%l%%"
			Call :Substitute "ssn" "%%%%n%%"
			Echo %%i=%%j;%%k=!ssl!;%%m=!ssn!;%%o=%%p;%%q=%%r;
		))
		Move /Y "%%f" "%BoxArc%\"
	)
	EndLocal
pause
Exit /B

:Substitute
	If Not "%~2"=="" Set "%~1=%~2"
Exit /B

:Replacement

Set "voronez=Воронеж"
Set "tver=Тверь"
Set "rostov=Ростов"
Set "sochi=Сочи"

Exit /B

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


Последний раз редактировалось megaloman, 17-06-2019 в 17:06.


Отправлено: 16:59, 17-06-2019 | #11