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

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

Ветеран


Contributor


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

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


Цитата Stolc:
Именно слова целиком и только. »
Код: Выделить весь код
@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 delims=" %%s IN ("%%f") DO (
			Set "ss=%%s"
			FOR /F "usebackq tokens=1* delims==" %%i IN (`Set "@@"`) DO Set "ss=!ss:%%j!"
			Echo !ss!
		))
		Move /Y "%%f" "%BoxArc%\"
	)
	EndLocal
pause
Exit /B

:Replacement

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

Exit /B
Не совсем понял постановку:
Цитата В Вашем файле:
data=20.05.2018;from=tver;to=voronezh;quality=50;nds=15;
Цитата Если делать замену как указано:
data=20.05.2018;from=Тверь;to=Воронежh;quality=50;nds=15;
Смущает буква h в voronezh -> Воронежh. Естественно, если пара для замены не указана, я не виноват.
Обработанные файлы перемещаю в архив.

Если файл надо получить в кодировке 1251, то и батник сохранить в этой кодировке, если в 866 - сохраните батник в 866 кодировке и убейте строку
CHCP 1251 >nul

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


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

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

Отправлено: 15:02, 17-06-2019 | #6